{
  "components": {
    "schemas": {
      ".attributes": {
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "status",
          "url"
        ]
      },
      ".data": {
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/.attributes"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "attributes",
          "type"
        ]
      },
      ".status": {
        "properties": {
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "reason"
        ]
      },
      "activity.v1.ActivityData": {
        "properties": {
          "decision": {
            "$ref": "#/components/schemas/services.authz.decision.Decision"
          },
          "duration": {
            "format": "int64",
            "type": "integer"
          },
          "request": {
            "$ref": "#/components/schemas/activity.v1.RequestData"
          },
          "response": {
            "$ref": "#/components/schemas/activity.v1.ResponseData"
          }
        },
        "required": [
          "duration",
          "request",
          "response"
        ]
      },
      "activity.v1.ActivityPostRequest": {
        "properties": {
          "class_type": {
            "description": "audit or activity",
            "type": "string"
          },
          "count": {
            "default": 256,
            "description": "max count of records to return: max(4096)",
            "format": "int32",
            "type": "integer"
          },
          "end_time": {
            "description": "filter time range end_time",
            "format": "date-time",
            "type": "string"
          },
          "forward": {
            "default": false,
            "description": "search from start(true) or end(false) of table",
            "type": "boolean"
          },
          "request_id": {
            "description": "filter on matching request_id",
            "type": "string"
          },
          "start_time": {
            "description": "filter time range start_time",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "activity.v1.ActivityPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/activity.v1.ActivityResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "activity.v1.ActivityResult": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/activity.v1.ActivityData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "activity.v1.RequestData": {
        "properties": {
          "class": {
            "type": "string"
          },
          "errors": {
            "$ref": "#/components/schemas/activity.v1.RequestErrors"
          },
          "host": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "request_body": {
            "type": "string"
          },
          "requested_by": {
            "type": "string"
          },
          "requested_through": {
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "host",
          "id",
          "method",
          "path",
          "timestamp"
        ]
      },
      "activity.v1.RequestErrors": {
        "properties": {
          "evaluation": {
            "type": "string"
          }
        }
      },
      "activity.v1.ResponseData": {
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/activity.v1.ResponseErrors"
          },
          "status_code": {
            "format": "int32",
            "type": "integer"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "status_code",
          "timestamp"
        ]
      },
      "activity.v1.ResponseErrors": {
        "properties": {
          "processing": {
            "type": "string"
          }
        }
      },
      "activity.v2.ActivityGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "results": {
            "$ref": "#/components/schemas/activity.v1.ActivityData"
          }
        },
        "required": [
          "results"
        ]
      },
      "activity.v2.ActivitySearchResponse": {
        "properties": {
          "cursor": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/activity.v1.ActivityData"
            },
            "type": "array"
          }
        },
        "required": [
          "results"
        ]
      },
      "analysis.v1.AllowedValue": {
        "properties": {
          "error": {
            "type": "string"
          },
          "value": {
            "type": "boolean"
          }
        }
      },
      "analysis.v1.ColumnValue": {
        "properties": {
          "error": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/analysis.v1.ColumnValue.value"
          }
        },
        "required": [
          "key"
        ]
      },
      "analysis.v1.ColumnValue.value": {},
      "analysis.v1.DecisionResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/analysis.v1.ElasticSearchDecision"
          }
        },
        "required": [
          "result"
        ]
      },
      "analysis.v1.DecisionSearchResult": {
        "properties": {
          "cursor": {
            "type": "string"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/analysis.v1.ElasticSearchDecision"
            },
            "type": "array"
          }
        },
        "required": [
          "items"
        ]
      },
      "analysis.v1.DecisionsGetRequest": {
        "properties": {
          "compact": {
            "default": false,
            "description": "return only essential decision fields",
            "type": "boolean"
          },
          "cursor": {
            "description": "continue from cursor position of previous query",
            "type": "string"
          },
          "default_timezone": {
            "description": "client time zone offset. Local time expressions in query are adjusted with this offset",
            "example": "-07:00, +3:00, Z",
            "type": "string"
          },
          "end_time": {
            "description": "maximum decision time",
            "format": "date-time",
            "type": "string"
          },
          "limit": {
            "default": 100,
            "description": "maximum number of decisions to return",
            "format": "int64",
            "type": "integer"
          },
          "order": {
            "default": "DESC",
            "description": "ASC, DESC",
            "type": "string"
          },
          "result_kind": {
            "default": "ALL",
            "description": "comma-separated list of ALL, UNKNOWN, ADVICE, ALLOWED, DENIED, ERROR",
            "type": "string"
          },
          "search": {
            "description": "search query",
            "type": "string"
          },
          "stack": {
            "description": "stack ID",
            "type": "string"
          },
          "start_time": {
            "description": "minimum decision time",
            "format": "date-time",
            "type": "string"
          },
          "system": {
            "description": "system ID",
            "type": "string"
          }
        }
      },
      "analysis.v1.DecisionsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/analysis.v1.DecisionSearchResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "analysis.v1.ElasticSearchDecision": {
        "properties": {
          "agent_id": {
            "type": "string"
          },
          "allowed": {
            "$ref": "#/components/schemas/analysis.v1.AllowedValue"
          },
          "batch_decision_id": {
            "description": "unique batch decision ID",
            "type": "string"
          },
          "bundles": {
            "additionalProperties": {
              "$ref": "#/components/schemas/logs.BundleInfoV1"
            },
            "description": "configured bundles",
            "type": "object"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/analysis.v1.ColumnValue"
            },
            "type": "array"
          },
          "cursor": {
            "type": "string"
          },
          "decision_id": {
            "description": "unique decision ID",
            "type": "string"
          },
          "decision_type": {
            "format": "byte",
            "type": "integer"
          },
          "erased": {
            "description": "erased fields",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "error": {
            "$ref": "#/components/schemas/analysis.v1.LogEntry.error"
          },
          "filtered_fields": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "input": {
            "$ref": "#/components/schemas/analysis.v1.LogEntry.input"
          },
          "kafka_topic": {
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "OPA labels",
            "type": "object"
          },
          "metrics": {
            "description": "decision metrics",
            "type": "object"
          },
          "nd_builtin_cache": {
            "additionalProperties": {
              "$ref": "#/components/schemas/analysis.v1.LogEntry.nd_builtin_cache"
            },
            "description": "OPA-side cache that stores results of builtin non-deterministic operations",
            "type": "object"
          },
          "path": {
            "description": "evaluated path",
            "type": "string"
          },
          "policy_type": {
            "type": "string"
          },
          "processed": {
            "format": "date-time",
            "type": "string"
          },
          "query": {
            "description": "ad-hoc query",
            "type": "string"
          },
          "reason": {
            "$ref": "#/components/schemas/analysis.v1.ReasonValue"
          },
          "received": {
            "format": "date-time",
            "type": "string"
          },
          "req_id": {
            "description": "request ID",
            "format": "integer",
            "type": "integer"
          },
          "request_context": {
            "$ref": "#/components/schemas/logs.RequestContext"
          },
          "requested_by": {
            "description": "requested by IP:port",
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/analysis.v1.LogEntry.result"
          },
          "revision": {
            "description": "bundle revision",
            "type": "string"
          },
          "stacks": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "system_id": {
            "type": "string"
          },
          "system_type": {
            "type": "string"
          },
          "timestamp": {
            "description": "OPA-side decision timestamp",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "columns",
          "decision_type"
        ]
      },
      "analysis.v1.LogEntry.error": {},
      "analysis.v1.LogEntry.input": {},
      "analysis.v1.LogEntry.nd_builtin_cache": {
        "type": "object"
      },
      "analysis.v1.LogEntry.result": {},
      "analysis.v1.ReasonValue": {
        "properties": {
          "error": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "authz.v1.CheckPermissionInput": {
        "properties": {
          "action": {
            "type": "string"
          },
          "body": {
            "type": "object"
          },
          "check_option": {
            "type": "string"
          },
          "operation": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "action",
          "body",
          "check_option",
          "operation",
          "path"
        ]
      },
      "authz.v1.CheckPermissionOutput": {
        "properties": {
          "allowed": {
            "type": "boolean"
          },
          "body": {
            "type": "object"
          },
          "check_option": {
            "type": "string"
          },
          "eval_error": {
            "type": "boolean"
          },
          "operation": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "allowed",
          "check_option",
          "eval_error",
          "operation",
          "path"
        ]
      },
      "authz.v1.CheckPermissionsPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/authz.v1.CheckPermissionOutput"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "authz.v1.RoleBindingConfig": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "role_name": {
            "type": "string"
          },
          "subjects": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "id",
          "metadata",
          "role_name",
          "subjects"
        ]
      },
      "authz.v1.RoleBindingsDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "authz.v1.RoleBindingsGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/authz.v1.RoleBindingConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "authz.v1.RoleBindingsListAllResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/authz.v1.RoleBindingsListAllResponse.result"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "authz.v1.RoleBindingsListAllResponse.result": {
        "additionalProperties": {
          "items": {
            "$ref": "#/components/schemas/authz.v1.RoleBindingConfig"
          },
          "type": "array"
        },
        "type": "object"
      },
      "authz.v1.RoleBindingsListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/authz.v1.RoleBindingConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "authz.v1.RoleBindingsPutRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "role_name": {
            "type": "string"
          },
          "subjects": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "description",
          "id",
          "role_name",
          "subjects"
        ]
      },
      "authz.v1.RoleBindingsPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "authz.v1.RoleConfig": {
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "authz.v1.RolesListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/authz.v1.RoleConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "authz.v2.ClaimConfig": {
        "properties": {
          "identity_provider": {
            "description": "identity provider ID",
            "type": "string"
          },
          "key": {
            "description": "OIDC claim key",
            "type": "string"
          },
          "value": {
            "description": "OIDC claim value. Use '*' to specify any value.",
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "authz.v2.InheritRoles": {
        "properties": {
          "action": {
            "description": "action upon resource e.g., create",
            "type": "string"
          },
          "resource_kind": {
            "description": "resource type e.g., system",
            "type": "string"
          },
          "role": {
            "description": "role ID e.g., SystemOwner",
            "type": "string"
          }
        },
        "required": [
          "action",
          "resource_kind",
          "role"
        ]
      },
      "authz.v2.ResourceFilter": {
        "properties": {
          "id": {
            "description": "resource ID e.g., system123",
            "type": "string"
          },
          "kind": {
            "description": "resource type e.g., system",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind"
        ]
      },
      "authz.v2.RoleBindingConfig": {
        "properties": {
          "id": {
            "description": "rolebinding ID",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "resource_filter": {
            "$ref": "#/components/schemas/authz.v2.ResourceFilter"
          },
          "role_id": {
            "description": "role ID e.g., SystemOwner",
            "type": "string"
          },
          "subjects": {
            "description": "list of subjects",
            "items": {
              "$ref": "#/components/schemas/authz.v2.Subject"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "metadata",
          "resource_filter",
          "role_id",
          "subjects"
        ]
      },
      "authz.v2.RoleBindingsDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "authz.v2.RoleBindingsDeleteSubjectsRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/authz.v2.Subject"
            },
            "type": "array"
          }
        },
        "required": [
          "subjects"
        ]
      },
      "authz.v2.RoleBindingsDeleteSubjectsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "rolebinding": {
            "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
          }
        },
        "required": [
          "rolebinding"
        ]
      },
      "authz.v2.RoleBindingsGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "rolebinding": {
            "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
          }
        },
        "required": [
          "rolebinding"
        ]
      },
      "authz.v2.RoleBindingsListResponse": {
        "properties": {
          "Offset": {
            "format": "int32",
            "type": "integer"
          },
          "request_id": {
            "type": "string"
          },
          "rolebindings": {
            "items": {
              "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "Offset",
          "rolebindings"
        ]
      },
      "authz.v2.RoleBindingsPostRequest": {
        "properties": {
          "id": {
            "description": "if present, implies updating existing rolebinding in its entirety, otherwise create new",
            "type": "string"
          },
          "resource_filter": {
            "$ref": "#/components/schemas/authz.v2.ResourceFilter"
          },
          "role_id": {
            "description": "role ID e.g., SystemOwner",
            "type": "string"
          },
          "subjects": {
            "description": "list of subjects",
            "items": {
              "$ref": "#/components/schemas/authz.v2.Subject"
            },
            "type": "array"
          }
        },
        "required": [
          "resource_filter",
          "role_id",
          "subjects"
        ]
      },
      "authz.v2.RoleBindingsPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "rolebinding": {
            "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
          }
        },
        "required": [
          "rolebinding"
        ]
      },
      "authz.v2.RoleBindingsPostSubjectsRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/authz.v2.Subject"
            },
            "type": "array"
          }
        },
        "required": [
          "subjects"
        ]
      },
      "authz.v2.RoleBindingsPostSubjectsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "rolebinding": {
            "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
          }
        },
        "required": [
          "rolebinding"
        ]
      },
      "authz.v2.RoleBindingsPutSubjectsRequest": {
        "properties": {
          "subjects": {
            "items": {
              "$ref": "#/components/schemas/authz.v2.Subject"
            },
            "type": "array"
          }
        },
        "required": [
          "subjects"
        ]
      },
      "authz.v2.RoleBindingsPutSubjectsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "rolebinding": {
            "$ref": "#/components/schemas/authz.v2.RoleBindingConfig"
          }
        },
        "required": [
          "rolebinding"
        ]
      },
      "authz.v2.RoleConfig": {
        "properties": {
          "description": {
            "description": "description for the role",
            "type": "string"
          },
          "id": {
            "description": "role ID e.g., SystemOwner",
            "type": "string"
          },
          "inherit_roles": {
            "description": "roles to be assigned as a result of the described action",
            "items": {
              "$ref": "#/components/schemas/authz.v2.InheritRoles"
            },
            "type": "array"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "resource_kind": {
            "description": "resource type e.g., system",
            "type": "string"
          }
        },
        "required": [
          "id",
          "inherit_roles",
          "metadata",
          "resource_kind"
        ]
      },
      "authz.v2.RolesListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/authz.v2.RoleConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "roles"
        ]
      },
      "authz.v2.Subject": {
        "properties": {
          "claim_config": {
            "$ref": "#/components/schemas/authz.v2.ClaimConfig"
          },
          "id": {
            "description": "subject ID (not needed for claim subjects)",
            "type": "string"
          },
          "kind": {
            "description": "subject type e.g., user",
            "type": "string"
          }
        },
        "required": [
          "kind"
        ]
      },
      "blueprints.v1.BlueprintConfig": {
        "properties": {
          "blueprint": {
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/blueprints.v1.Resource"
            },
            "type": "array"
          }
        },
        "required": [
          "blueprint",
          "resources"
        ]
      },
      "blueprints.v1.BlueprintListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "blueprints.v1.BlueprintPostRequest": {},
      "blueprints.v1.BlueprintPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/blueprints.v1.BlueprintConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "blueprints.v1.Resource": {
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "bundles.v1.RepoRoots": {
        "properties": {
          "commit": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "repo": {
            "type": "string"
          },
          "roots": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "commit",
          "id",
          "path",
          "ref",
          "repo",
          "roots",
          "timestamp"
        ]
      },
      "bundles.v1.SBOM": {
        "properties": {
          "origins": {
            "items": {
              "$ref": "#/components/schemas/bundles.v1.RepoRoots"
            },
            "type": "array"
          }
        }
      },
      "crypto.FilterTree": {
        "properties": {
          "digest": {
            "type": "string"
          },
          "nodes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/crypto.FilterTree"
            },
            "type": "object"
          }
        }
      },
      "crypto.Signature": {
        "properties": {
          "excluded": {
            "$ref": "#/components/schemas/crypto.FilterTree"
          },
          "signatures": {
            "items": {
              "$ref": "#/components/schemas/crypto.Signature.signatures"
            },
            "type": "array"
          }
        }
      },
      "crypto.Signature.signatures": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "data.v1.BuiltinMocks": {
        "properties": {
          "dynamodb.get": {
            "$ref": "#/components/schemas/data.v1.MocksDynamoDBGet"
          },
          "dynamodb.query": {
            "$ref": "#/components/schemas/data.v1.MocksDynamoDBQuery"
          },
          "http.send": {
            "$ref": "#/components/schemas/data.v1.MocksHttpSend"
          },
          "mongodb.find": {
            "$ref": "#/components/schemas/data.v1.MocksMongoDBFind"
          },
          "mongodb.find_one": {
            "$ref": "#/components/schemas/data.v1.MocksMongoDBFindOne"
          },
          "mysql.send": {
            "$ref": "#/components/schemas/data.v1.MocksMysqlSend"
          },
          "neo4j.query": {
            "$ref": "#/components/schemas/data.v1.MocksNeo4jQuery"
          },
          "opa.runtime": {
            "$ref": "#/components/schemas/data.v1.MocksOPARuntime"
          },
          "postgres.send": {
            "$ref": "#/components/schemas/data.v1.MocksPostgresSend"
          },
          "redis.query": {
            "$ref": "#/components/schemas/data.v1.MocksRedisQuery"
          },
          "sql.send": {
            "$ref": "#/components/schemas/data.v1.MocksSqlSend"
          },
          "vault.send": {
            "$ref": "#/components/schemas/data.v1.MocksVaultSend"
          }
        }
      },
      "data.v1.BuiltinMocksResponse": {
        "properties": {
          "dynamodb.get": {
            "$ref": "#/components/schemas/data.v1.MocksDynamoDBGetResponse"
          },
          "dynamodb.query": {
            "$ref": "#/components/schemas/data.v1.MocksDynamoDBQueryResponse"
          },
          "http.send": {
            "$ref": "#/components/schemas/data.v1.MocksHttpSendResponse"
          },
          "mongodb.find": {
            "$ref": "#/components/schemas/data.v1.MocksMongoDBFindResponse"
          },
          "mongodb.find_one": {
            "$ref": "#/components/schemas/data.v1.MocksMongoDBFindOneResponse"
          },
          "mysql.send": {
            "$ref": "#/components/schemas/data.v1.MocksMysqlSendResponse"
          },
          "neo4j.query": {
            "$ref": "#/components/schemas/data.v1.MocksNeo4jQueryResponse"
          },
          "postgres.send": {
            "$ref": "#/components/schemas/data.v1.MocksPostgresSendResponse"
          },
          "redis.query": {
            "$ref": "#/components/schemas/data.v1.MocksRedisQueryResponse"
          },
          "sql.send": {
            "$ref": "#/components/schemas/data.v1.MocksSqlSendResponse"
          },
          "vault.send": {
            "$ref": "#/components/schemas/data.v1.MocksVaultSendResponse"
          }
        }
      },
      "data.v1.DataPatchResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/data.v1.DataPatchResponse.result"
          }
        },
        "required": [
          "result"
        ]
      },
      "data.v1.DataPatchResponse.result": {},
      "data.v1.DataPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "data.v1.DataRequest": {
        "properties": {
          "data": {
            "description": "Initial data object",
            "type": "object"
          },
          "input": {
            "type": "object"
          },
          "jsonpath": {
            "description": "Json Path expression to extract portions of documents",
            "type": "string"
          },
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocks"
          },
          "nd_builtin_cache": {
            "additionalProperties": {
              "$ref": "#/components/schemas/data.v1.DataRequest.nd_builtin_cache"
            },
            "description": "Cache containing results of non-deterministic built-in functions",
            "type": "object"
          },
          "query_package": {
            "description": "The package name to be used with query in case of multiple rego modules",
            "type": "string"
          },
          "rego": {
            "description": "Rego query to be executed for the documents",
            "type": "string"
          },
          "rego_modules": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "List of rego modules to be loaded and executed for the documents",
            "type": "object"
          },
          "replay": {
            "description": "Inject STYRA_DAS_REPLAY environment variable into opa.runtime().env",
            "type": "boolean"
          },
          "sandbox": {
            "description": "Only used explicitly provided policies and data. Do not load anything from DAS",
            "type": "boolean"
          },
          "strict": {
            "description": "Enable strict Rego compilation mode",
            "type": "boolean"
          }
        }
      },
      "data.v1.DataRequest.nd_builtin_cache": {
        "type": "object"
      },
      "data.v1.DataResponse": {
        "properties": {
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocksResponse"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/data.v1.DataResponse.result"
          },
          "type_env": {
            "$ref": "#/components/schemas/data.v1.DataResponse.type_env"
          }
        },
        "required": [
          "result",
          "type_env"
        ]
      },
      "data.v1.DataResponse.result": {},
      "data.v1.DataResponse.type_env": {},
      "data.v1.MocksDynamoDBGet": {
        "properties": {
          "data": {
            "description": "mock dynamodb.get data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBGetData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksDynamoDBGetData": {
        "properties": {
          "key": {
            "description": "the key to fetch from the table",
            "type": "object"
          },
          "region": {
            "description": "the AWS region to query",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "table": {
            "description": "the Dynamo DB table to fetch from",
            "type": "string"
          }
        },
        "required": [
          "key",
          "region",
          "result",
          "table"
        ]
      },
      "data.v1.MocksDynamoDBGetResponse": {
        "properties": {
          "mocked": {
            "description": "mock dynamodb.get response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBResponseForGet"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock dynamodb.get response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBResponseForGet"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksDynamoDBQuery": {
        "properties": {
          "data": {
            "description": "mock dynamodb.query data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBQueryData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksDynamoDBQueryData": {
        "properties": {
          "key_condition_expression": {
            "description": "the key matching expression for the query",
            "type": "string"
          },
          "region": {
            "description": "the AWS region to query",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "table": {
            "description": "the Dynamo DB table to fetch from",
            "type": "string"
          }
        },
        "required": [
          "key_condition_expression",
          "region",
          "result",
          "table"
        ]
      },
      "data.v1.MocksDynamoDBQueryResponse": {
        "properties": {
          "mocked": {
            "description": "mock dynamodb.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBResponseForQuery"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock dynamodb.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksDynamoDBResponseForQuery"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksDynamoDBResponseForGet": {
        "properties": {
          "key": {
            "description": "the key to fetch from the table",
            "type": "object"
          },
          "region": {
            "description": "the AWS region to query",
            "type": "string"
          },
          "table": {
            "description": "the Dynamo DB table to fetch from",
            "type": "string"
          }
        },
        "required": [
          "key",
          "region",
          "table"
        ]
      },
      "data.v1.MocksDynamoDBResponseForQuery": {
        "properties": {
          "key_condition_expression": {
            "description": "the key matching expression for the query",
            "type": "string"
          },
          "region": {
            "description": "the AWS region to query",
            "type": "string"
          },
          "table": {
            "description": "the Dynamo DB table to fetch from",
            "type": "string"
          }
        },
        "required": [
          "key_condition_expression",
          "region",
          "table"
        ]
      },
      "data.v1.MocksHttpData": {
        "properties": {
          "method": {
            "description": "request method",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "url": {
            "description": "request URL",
            "type": "string"
          }
        },
        "required": [
          "method",
          "result",
          "url"
        ]
      },
      "data.v1.MocksHttpResponse": {
        "properties": {
          "method": {
            "description": "request method",
            "type": "string"
          },
          "url": {
            "description": "request URL",
            "type": "string"
          }
        },
        "required": [
          "method",
          "url"
        ]
      },
      "data.v1.MocksHttpSend": {
        "properties": {
          "data": {
            "description": "mock http.send data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksHttpData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksHttpSendResponse": {
        "properties": {
          "mocked": {
            "description": "mock http.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksHttpResponse"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock http.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksHttpResponse"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksMongoDBFind": {
        "properties": {
          "data": {
            "description": "mock mongodb.find data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBFindData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksMongoDBFindData": {
        "properties": {
          "collection": {
            "description": "the collection to query",
            "type": "string"
          },
          "database": {
            "description": "the name of the database",
            "type": "string"
          },
          "filter": {
            "description": "the filter to use for the query",
            "type": "object"
          },
          "options": {
            "description": "the options to use for the query",
            "type": "object"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "uri": {
            "description": "the MongoDB URI",
            "type": "string"
          }
        },
        "required": [
          "collection",
          "database",
          "filter",
          "options",
          "result",
          "uri"
        ]
      },
      "data.v1.MocksMongoDBFindOne": {
        "properties": {
          "data": {
            "description": "mock mongodb.find_one data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBFindOneData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksMongoDBFindOneData": {
        "properties": {
          "collection": {
            "description": "the collection to query",
            "type": "string"
          },
          "database": {
            "description": "the name of the database",
            "type": "string"
          },
          "filter": {
            "description": "the filter to use for the query",
            "type": "object"
          },
          "options": {
            "description": "the options to use for the query",
            "type": "object"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "uri": {
            "description": "the MongoDB URI",
            "type": "string"
          }
        },
        "required": [
          "collection",
          "database",
          "filter",
          "options",
          "result",
          "uri"
        ]
      },
      "data.v1.MocksMongoDBFindOneResponse": {
        "properties": {
          "mocked": {
            "description": "mock mongodb.find_one response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBResponseForFindOne"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock mongodb.find_one response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBResponseForFindOne"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksMongoDBFindResponse": {
        "properties": {
          "mocked": {
            "description": "mock mongodb.find response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBResponseForFind"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock mongodb.find response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMongoDBResponseForFind"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksMongoDBResponseForFind": {
        "properties": {
          "collection": {
            "description": "the collection to query",
            "type": "string"
          },
          "database": {
            "description": "the name of the database",
            "type": "string"
          },
          "filter": {
            "description": "the filter to use for the query",
            "type": "object"
          },
          "options": {
            "description": "the options to use for the query",
            "type": "object"
          },
          "uri": {
            "description": "the database URI",
            "type": "string"
          }
        },
        "required": [
          "collection",
          "database",
          "filter",
          "options",
          "uri"
        ]
      },
      "data.v1.MocksMongoDBResponseForFindOne": {
        "properties": {
          "collection": {
            "description": "the collection to query",
            "type": "string"
          },
          "database": {
            "description": "the name of the database",
            "type": "string"
          },
          "filter": {
            "description": "the filter to use for the query",
            "type": "object"
          },
          "options": {
            "description": "the options to use for the query",
            "type": "object"
          },
          "uri": {
            "description": "the database URI",
            "type": "string"
          }
        },
        "required": [
          "collection",
          "database",
          "filter",
          "options",
          "uri"
        ]
      },
      "data.v1.MocksMysqlResponse": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMysqlResponse.args"
            },
            "type": "array"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          }
        },
        "required": [
          "args",
          "query"
        ]
      },
      "data.v1.MocksMysqlResponse.args": {},
      "data.v1.MocksMysqlSend": {
        "properties": {
          "data": {
            "description": "mock mysql.send data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMysqlSendData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksMysqlSendData": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMysqlSendData.args"
            },
            "type": "array"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "args",
          "query",
          "result"
        ]
      },
      "data.v1.MocksMysqlSendData.args": {},
      "data.v1.MocksMysqlSendResponse": {
        "properties": {
          "mocked": {
            "description": "mock mysql.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMysqlResponse"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock mysql.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksMysqlResponse"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksNeo4jQuery": {
        "properties": {
          "data": {
            "description": "mock neo4j.query data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksNeo4jQueryData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksNeo4jQueryData": {
        "properties": {
          "parameters": {
            "description": "the parameters to use for substitution in the Cypher query",
            "type": "object"
          },
          "query": {
            "description": "the Cypher query to run against the Neo4j database",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          },
          "uri": {
            "description": "the Neo4j URI",
            "type": "string"
          }
        },
        "required": [
          "parameters",
          "query",
          "result",
          "uri"
        ]
      },
      "data.v1.MocksNeo4jQueryResponse": {
        "properties": {
          "mocked": {
            "description": "mock neo4j.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksNeo4jQueryResponseForQuery"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock neo4j.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksNeo4jQueryResponseForQuery"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksNeo4jQueryResponseForQuery": {
        "properties": {
          "parameters": {
            "description": "Parameters for substitution into Cypher query",
            "type": "object"
          },
          "query": {
            "description": "Cypher query to run against neo4j database",
            "type": "string"
          },
          "uri": {
            "description": "neo4j database URI",
            "type": "string"
          }
        },
        "required": [
          "parameters",
          "query",
          "uri"
        ]
      },
      "data.v1.MocksOPARuntime": {
        "properties": {
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "data.v1.MocksPostgresResponse": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksPostgresResponse.args"
            },
            "type": "array"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          }
        },
        "required": [
          "args",
          "query"
        ]
      },
      "data.v1.MocksPostgresResponse.args": {},
      "data.v1.MocksPostgresSend": {
        "properties": {
          "data": {
            "description": "mock postgres.send data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksPostgresSendData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksPostgresSendData": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksPostgresSendData.args"
            },
            "type": "array"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "args",
          "query",
          "result"
        ]
      },
      "data.v1.MocksPostgresSendData.args": {},
      "data.v1.MocksPostgresSendResponse": {
        "properties": {
          "mocked": {
            "description": "mock postgres.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksPostgresResponse"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock postgres.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksPostgresResponse"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksRedisQuery": {
        "properties": {
          "data": {
            "description": "mock redis.query data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksRedisQueryData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksRedisQueryData": {
        "properties": {
          "addr": {
            "description": "the Redis database address",
            "type": "string"
          },
          "args": {
            "description": "argument to the Redis command",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksRedisQueryData.args"
            },
            "type": "array"
          },
          "command": {
            "description": "the Redis command to execute",
            "type": "string"
          },
          "db": {
            "description": "the Redis database number",
            "format": "int32",
            "type": "integer"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "addr",
          "args",
          "command",
          "db",
          "result"
        ]
      },
      "data.v1.MocksRedisQueryData.args": {},
      "data.v1.MocksRedisQueryResponse": {
        "properties": {
          "mocked": {
            "description": "mock redis.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksRedisQueryResponseForQuery"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock redis.query response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksRedisQueryResponseForQuery"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksRedisQueryResponseForQuery": {
        "properties": {
          "addr": {
            "description": "Redis database address",
            "type": "string"
          },
          "args": {
            "description": "arguments to the Redis command",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksRedisQueryResponseForQuery.args"
            },
            "type": "array"
          },
          "db": {
            "description": "Redis database number",
            "format": "int32",
            "type": "integer"
          },
          "query": {
            "description": "Redis command to be run",
            "type": "string"
          }
        },
        "required": [
          "addr",
          "args",
          "db",
          "query"
        ]
      },
      "data.v1.MocksRedisQueryResponseForQuery.args": {},
      "data.v1.MocksSqlData": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksSqlData.args"
            },
            "type": "array"
          },
          "data_source_name": {
            "description": "the database source",
            "type": "string"
          },
          "driver": {
            "description": "SQL driver",
            "type": "string"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "args",
          "data_source_name",
          "driver",
          "query",
          "result"
        ]
      },
      "data.v1.MocksSqlData.args": {},
      "data.v1.MocksSqlResponse": {
        "properties": {
          "args": {
            "description": "the arguments of the query",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksSqlResponse.args"
            },
            "type": "array"
          },
          "data_source_name": {
            "description": "the database source",
            "type": "string"
          },
          "driver": {
            "description": "SQL driver",
            "type": "string"
          },
          "query": {
            "description": "the query run against the data source",
            "type": "string"
          }
        },
        "required": [
          "args",
          "data_source_name",
          "driver",
          "query"
        ]
      },
      "data.v1.MocksSqlResponse.args": {},
      "data.v1.MocksSqlSend": {
        "properties": {
          "data": {
            "description": "mock sql.send data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksSqlData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksSqlSendResponse": {
        "properties": {
          "mocked": {
            "description": "mock sql.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksSqlResponse"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock sql.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksSqlResponse"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksVaultSend": {
        "properties": {
          "data": {
            "description": "mock vault.send data, the noop function is used if the list is empty",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksVaultSendData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "data.v1.MocksVaultSendData": {
        "properties": {
          "mount_path": {
            "description": "kv2_get.mount_path",
            "type": "string"
          },
          "path": {
            "description": "kv2_get.path",
            "type": "string"
          },
          "result": {
            "description": "mock json result",
            "type": "object"
          }
        },
        "required": [
          "mount_path",
          "path",
          "result"
        ]
      },
      "data.v1.MocksVaultSendResponse": {
        "properties": {
          "mocked": {
            "description": "mock vault.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksVaultSendResponseForSend"
            },
            "type": "array"
          },
          "unmocked": {
            "description": "mock vault.send response",
            "items": {
              "$ref": "#/components/schemas/data.v1.MocksVaultSendResponseForSend"
            },
            "type": "array"
          }
        }
      },
      "data.v1.MocksVaultSendResponseForSend": {
        "properties": {
          "mount_path": {
            "description": "kv2_get.mount_path",
            "type": "string"
          },
          "path": {
            "description": "kv2_get.path",
            "type": "string"
          }
        },
        "required": [
          "mount_path",
          "path"
        ]
      },
      "datasources.v1.AWS.Common": {
        "properties": {
          "credentials": {
            "description": "Secret ID with AWS credentials",
            "type": "string"
          },
          "region": {
            "description": "AWS region",
            "type": "string"
          }
        },
        "required": [
          "credentials",
          "region"
        ],
        "type": "object"
      },
      "datasources.v1.AWS.ECR": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.AWS.Common"
          },
          {
            "properties": {
              "RegistryId": {
                "description": "Registry ID",
                "type": "string"
              },
              "category": {
                "description": "Must be `aws/ecr`\n<br />\nA Data Source that retrieves the data about AWS IAM deployments.\n"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "category": "aws/ecr",
          "credentials": "aws_creds",
          "on_premises": false,
          "region": "us-east-1"
        },
        "title": "aws/ecr",
        "x-datasource": true
      },
      "datasources.v1.Common": {
        "properties": {
          "category": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "enabled": {
            "default": true,
            "type": "boolean"
          },
          "on_premises": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "category"
        ],
        "type": "object"
      },
      "datasources.v1.Config": {
        "type": "object"
      },
      "datasources.v1.DatasourcesDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "datasources.v1.DatasourcesGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "datasources.v1.DatasourcesListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/datasources.v1.Config"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "datasources.v1.DatasourcesPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/datasources.v1.DatasourcesPostResponse.result"
          }
        },
        "required": [
          "result"
        ]
      },
      "datasources.v1.DatasourcesPostResponse.result": {},
      "datasources.v1.DatasourcesPutRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.AWS.ECR"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.GCS.Bundle"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.GCS.Content"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Blame"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Content"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Rego"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.HTTP"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Kafka"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Kubernetes.Resources"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.LDAP"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.okta"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.PolicyLibrary"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Rest"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Bundle"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Content"
          }
        ],
        "type": "object"
      },
      "datasources.v1.DatasourcesPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "allOf": [
              {
                "$ref": "#/components/schemas/datasources.v1.DatasourcesPutRequest"
              },
              {
                "properties": {
                  "executed": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "metadata": {
                    "properties": {
                      "created_at": {
                        "format": "date-time",
                        "type": "string"
                      },
                      "created_by": {
                        "type": "string"
                      },
                      "created_through": {
                        "type": "string"
                      },
                      "last_modified_at": {
                        "format": "date-time",
                        "type": "string"
                      },
                      "last_modified_by": {
                        "type": "string"
                      },
                      "last_modified_through": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "resources": {
                    "items": {
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "status": {
                    "type": "object"
                  }
                },
                "type": "object"
              }
            ]
          }
        },
        "type": "object"
      },
      "datasources.v1.GCS.Bundle": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Bundle"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `gcs/bundle`\n<br />\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from a GCS bucket.\n"
              }
            },
            "type": "object"
          }
        ],
        "title": "gcs/bundle",
        "x-datasource": true
      },
      "datasources.v1.GCS.Content": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Content"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `gcs/content`\n<br />\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from a GCS bucket.\n"
              }
            },
            "type": "object"
          }
        ],
        "title": "gcs/content",
        "x-datasource": true
      },
      "datasources.v1.Git.Blame": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Common"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `git/blame`\n<br />\nA Data Source that retrieves the blame index for the HEAD of the configured branch.\n"
              },
              "path_regexp": {
                "default": ".*",
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "category": "git/blame",
          "on_premises": false,
          "path_regexp": "^foo.+bar$",
          "reference": "refs/heads/main",
          "ssh_credentials": {
            "private_key": "git_ssh_key"
          },
          "url": "https://git.example.com"
        },
        "title": "git/blame",
        "x-datasource": true
      },
      "datasources.v1.Git.Common": {
        "properties": {
          "commit": {
            "description": "Commit SHA. If set, it takes precedence over reference",
            "type": "string"
          },
          "credentials": {
            "description": "Secret ID with credentials",
            "type": "string"
          },
          "reference": {
            "default": "refs/heads/master",
            "type": "string"
          },
          "ssh_credentials": {
            "properties": {
              "passphrase": {
                "description": "Secret ID with passphrase",
                "type": "string"
              },
              "private_key": {
                "description": "Secret ID with private key",
                "type": "string"
              }
            },
            "required": [
              "private_key"
            ],
            "type": "object"
          },
          "timeout": {
            "default": "60s",
            "type": "string"
          },
          "url": {
            "description": "Git URL",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "datasources.v1.Git.Content": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Common"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `git/content`\n<br />\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from a Git repository.\n"
              },
              "path": {
                "description": "A relative path within given repository",
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "category": "git/content",
          "on_premises": false,
          "reference": "refs/heads/main",
          "ssh_credentials": {
            "private_key": "git_ssh_key"
          },
          "url": "git@git.example.com"
        },
        "title": "git/content",
        "x-datasource": true
      },
      "datasources.v1.Git.Rego": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Git.Common"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `git/rego`\n<br />\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from a Git repository.\n"
              },
              "path": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "category": "git/rego",
          "on_premises": false,
          "path": "foo/bar",
          "reference": "refs/heads/main",
          "ssh_credentials": {
            "private_key": "git_ssh_key"
          },
          "url": "https://git.example.com"
        },
        "title": "git/rego",
        "x-datasource": true
      },
      "datasources.v1.HTTP": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.TLSSettings"
          },
          {
            "properties": {
              "body": {
                "description": "Payload in JSON format",
                "type": "string"
              },
              "category": {
                "description": "Must be `http`\n<br />\nA Data Source that accesses data from an external server through a URL.\n"
              },
              "headers": {
                "items": {
                  "$ref": "#/components/schemas/datasources.v1.HTTP.Header"
                },
                "type": "array"
              },
              "method": {
                "description": "HTTP Method, default `GET`.",
                "enum": [
                  "GET",
                  "POST",
                  "QUERY"
                ],
                "type": "string"
              },
              "raw_body": {
                "description": "Base64 encoded payload",
                "type": "string"
              },
              "timeout": {
                "default": "60s",
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "url"
            ],
            "type": "object"
          }
        ],
        "example": {
          "ca_certificate": "-----BEGIN CERTIFICATE REQUEST----- MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNV BAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl Y29kaW5nIG1lPyAgVGhpcyBpcyBvbmx5IGEgdGVzdCEhITERMA8GA1UEBwwISGFt aWx0b24xETAPBgNVBAgMCFBlbWJyb2tlMQswCQYDVQQGEwJCTTEPMA0GCSqGSIb3 DQEJARYAMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJ9WRanG/fUvcfKiGl EL4aRLjGt537mZ28UU9/3eiJeJznNSOuNLnF+hmabAu7H0LT4K7EdqfF+XUZW/2j RKRYcvOUDGF9A7OjW7UfKk1In3+6QDCi7X34RE161jqoaJjrm/T18TOKcgkkhRzE apQnIDm0Ea/HVzX/PiSOGuertwIDAQABMAsGCSqGSIb3DQEBBQOBgQBzMJdAV4QP Awel8LzGx5uMOshezF/KfP67wJ93UW+N7zXY6AwPgoLj4Kjw+WtU684JL8Dtr9FX ozakE+8p06BpxegR4BR3FMHf6p+0jQxUEAkAyb/mVgm66TyghDGC6/YkiKoZptXQ 98TwDIK/39WEB/V607As+KoYazQG8drorw== -----END CERTIFICATE REQUEST-----\n",
          "category": "http",
          "headers": [
            {
              "name": "TOKEN",
              "secret_id": "http_token"
            }
          ],
          "on_premises": false,
          "polling_interval": "60s",
          "url": "https://example.com"
        },
        "title": "http",
        "x-datasource": true
      },
      "datasources.v1.HTTP.Header": {
        "properties": {
          "name": {
            "description": "Header's name",
            "type": "string"
          },
          "secret_id": {
            "description": "Secret ID where the Header's value is stored",
            "type": "string"
          },
          "value": {
            "description": "Header's value",
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "datasources.v1.Kafka": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.TLSSettings"
          },
          {
            "properties": {
              "topic": {
                "description": "Topic to consume messages from",
                "type": "string"
              },
              "urls": {
                "description": "List of brokers to connect to",
                "items": {
                  "minItems": 1,
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "urls"
            ],
            "type": "object"
          }
        ],
        "example": {
          "category": "kafka",
          "on_premises": true,
          "polling_interval": "1s",
          "urls": [
            "kafka://first.kafka.corp:9093",
            "kafka://second.kafka.corp:9093"
          ]
        },
        "title": "kafka",
        "x-datasource": false
      },
      "datasources.v1.Kubernetes.Resources": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `kubernetes/resources`\n<br />\nA Data Source that retrieves the state of all Kubernetes resources.\n"
              },
              "masks": {
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "description": "strip out resource properties given their relative path",
                "type": "object"
              },
              "namespaces": {
                "additionalProperties": {
                  "type": "boolean"
                },
                "description": "allows to include/exclude namespaces",
                "type": "object"
              },
              "on_premises": {
                "description": "Must be `true`"
              },
              "selectors": {
                "additionalProperties": {
                  "type": "string"
                },
                "description": "field selectors per resource [group]",
                "type": "object"
              }
            },
            "required": [
              "on_premises"
            ],
            "type": "object"
          }
        ],
        "example": {
          "category": "kubernetes/resources",
          "masks": {
            "argoproj.io/workflows": [
              "*"
            ],
            "pods": [
              "spec.afinity",
              "spec/livenessProbe",
              "status",
              "metadata.annotations.'kubectl.kubernetes.io/last-applied-configuration'"
            ]
          },
          "namespaces": {
            "": false,
            "*": false,
            "nsName": true
          },
          "on_premises": true,
          "rate_limit": 3,
          "selectors": {
            "ingress": "metadata.namespace==default",
            "pods": "status.phase!=Running,spec.restartPolicy=Always"
          }
        },
        "title": "kubernetes/resources",
        "x-datasource": true
      },
      "datasources.v1.LDAP": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.TLSSettings"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `ldap`\n<br />\nA Data Source that reads data from a configured LDAP service.\n"
              },
              "credentials": {
                "description": "Secret ID with credentials",
                "type": "string"
              },
              "search": {
                "description": "Search Request.\nDocumentation: https://ldapwiki.com/wiki/SearchRequest\n",
                "properties": {
                  "attributes": {
                    "description": "Search attribute selection.\nDocumentation: https://ldapwiki.com/wiki/AttributeSelection\n",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "base_DN": {
                    "description": "Search Base DN.\nDocumentation: https://ldapwiki.com/wiki/BaseDN\n",
                    "type": "string"
                  },
                  "deref": {
                    "default": "never",
                    "description": "Search dereference policy.\nDocumentation: https://ldapwiki.com/wiki/Dereference%20Policy\n",
                    "enum": [
                      "never",
                      "searching",
                      "finding",
                      "always"
                    ],
                    "type": "string"
                  },
                  "filter": {
                    "description": "Search filter.\nDocumentation: https://ldapwiki.com/wiki/LDAP%20SearchFilters\nExamples: https://ldapwiki.com/wiki/LDAP%20Query%20Examples\n",
                    "type": "string"
                  },
                  "page_size": {
                    "description": "Search page size.\nDocumentation: https://ldapwiki.com/wiki/MaxPageSize\n",
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "scope": {
                    "default": "whole-subtree",
                    "description": "Search scope.\nDocumentation: https://ldapwiki.com/wiki/LDAP%20Search%20Scopes\n",
                    "enum": [
                      "base-object",
                      "single-level",
                      "whole-subtree"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "base_DN",
                  "filter"
                ],
                "type": "object"
              },
              "urls": {
                "description": "List of URLs: main + replicas",
                "items": {
                  "minItems": 1,
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "urls"
            ],
            "type": "object"
          }
        ],
        "example": {
          "category": "ldap",
          "credentials": "ldapcreds",
          "on_premises": false,
          "polling_interval": "60s",
          "search": {
            "base_DN": "dc=test,dc=styra,dc=com",
            "deref": "never",
            "filter": "(objectclass=*)",
            "scope": "whole-subtree"
          },
          "urls": [
            "ldaps://example.com:33636",
            "ldap://example.com:33389"
          ]
        },
        "title": "ldap",
        "x-datasource": true
      },
      "datasources.v1.ParallelismLimiter": {
        "properties": {
          "parallel": {
            "default": 10,
            "description": "the maximum level of parallelism allowed",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "datasources.v1.PolicyLibrary": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `policy-library`"
              }
            },
            "type": "object"
          }
        ],
        "title": "policy-library",
        "x-datasource": true
      },
      "datasources.v1.Poller": {
        "properties": {
          "polling_interval": {
            "default": "30s",
            "type": "string"
          }
        },
        "type": "object"
      },
      "datasources.v1.RateLimiter": {
        "properties": {
          "rate_limit": {
            "default": 3,
            "description": "requests per second",
            "type": "number"
          }
        },
        "type": "object"
      },
      "datasources.v1.RegoFiltering": {
        "properties": {
          "policy_filter": {
            "description": "Policy Filter (if set, then policy_query must be set as well)",
            "type": "string"
          },
          "policy_query": {
            "description": "Policy Query (if set, then policy_filter must be set as well)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "datasources.v1.Rest": {
        "allOf": [
          {
            "properties": {
              "category": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "enabled": {
                "default": true,
                "type": "boolean"
              }
            },
            "required": [
              "category"
            ],
            "type": "object"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `rest`\n<br />\nA Data Source that opens an endpoint for writing data in JSON format.\n"
              },
              "content_type": {
                "type": "string"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "category": "rest",
          "content_type": "application/json"
        },
        "title": "rest",
        "x-datasource": true
      },
      "datasources.v1.S3.Bundle": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Common"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `bundle/s3`\n<br />\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from an Amazon S3 bucket.\n"
              }
            },
            "required": [
              "path"
            ],
            "type": "object"
          }
        ],
        "example": {
          "bucket": "aws://foo",
          "category": "bundle/s3",
          "credentials": "s3_creds",
          "endpoint": "https://s3.example.com",
          "on_premises": false,
          "path": "bar/xyz",
          "region": "us-east-1"
        },
        "title": "bundle/s3",
        "x-datasource": true
      },
      "datasources.v1.S3.Common": {
        "properties": {
          "bucket": {
            "description": "S3 Bucket",
            "type": "string"
          },
          "credentials": {
            "description": "Secret ID with credentials",
            "type": "string"
          },
          "endpoint": {
            "description": "Endpoint to S3 storage",
            "type": "string"
          },
          "path": {
            "description": "S3 Path within a Bucket",
            "type": "string"
          },
          "region": {
            "description": "Region",
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "credentials"
        ],
        "type": "object"
      },
      "datasources.v1.S3.Content": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RateLimiter"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.S3.Common"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `aws/s3`\n<br />\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from an Amazon S3 bucket.\n"
              }
            },
            "type": "object"
          }
        ],
        "example": {
          "bucket": "aws://foo",
          "category": "aws/s3",
          "credentials": "s3_creds",
          "endpoint": "https://s3.example.com",
          "on_premises": false,
          "path": "bar/xyz",
          "region": "us-east-1"
        },
        "title": "aws/s3",
        "x-datasource": true
      },
      "datasources.v1.TLSSettings": {
        "properties": {
          "ca_certificate": {
            "description": "Custom root certificate",
            "type": "string"
          },
          "mtls_certificate": {
            "description": "Certificate for mTLS",
            "type": "string"
          },
          "mtls_private_key_secret_id": {
            "description": "Secret ID of Private Key for mTLS",
            "type": "string"
          },
          "skip_tls_verification": {
            "default": false,
            "description": "Skip TLS verification",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "datasources.v1.okta": {
        "allOf": [
          {
            "$ref": "#/components/schemas/datasources.v1.Common"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.Poller"
          },
          {
            "$ref": "#/components/schemas/datasources.v1.RegoFiltering"
          },
          {
            "properties": {
              "category": {
                "description": "Must be `okta`\n<br />\nA Data Source that reads users, groups, roles, and applications from Okta services.\n"
              },
              "credentials": {
                "type": "string"
              },
              "okta_client_id": {
                "type": "string"
              },
              "okta_client_secret": {
                "type": "string"
              },
              "okta_enable_apps": {
                "type": "boolean"
              },
              "okta_enable_groups": {
                "type": "boolean"
              },
              "okta_enable_roles": {
                "type": "boolean"
              },
              "okta_enable_users": {
                "type": "boolean"
              },
              "okta_tenant": {
                "description": "HTTP URL for the Okta tenant, including the protocol",
                "type": "string"
              }
            },
            "required": [
              "okta_tenant"
            ],
            "type": "object"
          }
        ],
        "example": {
          "category": "okta",
          "okta_client_id": "abc123",
          "okta_client_secret": "xyz456",
          "okta_enable_apps": true,
          "okta_enable_groups": true,
          "okta_enable_roles": true,
          "okta_enable_users": true,
          "okta_tenant": "https://example-123.okta.com",
          "polling_interval": "300s"
        },
        "title": "okta",
        "x-datasource": true
      },
      "git.v1.Commit": {
        "properties": {
          "author": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of filenames to file contents",
            "type": "object"
          },
          "files_to_delete": {
            "description": "List of filenames to delete from the repo",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "author",
          "branch",
          "email",
          "files",
          "files_to_delete",
          "message"
        ]
      },
      "git.v1.CommitInput": {
        "properties": {
          "author": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of filenames to file contents",
            "type": "object"
          },
          "files_to_delete": {
            "description": "List of filenames to delete from the repo",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "author",
          "email",
          "files",
          "files_to_delete",
          "message"
        ]
      },
      "git.v1.DeleteBranchResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "git.v1.GetFileChangesResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/git.v1.RepoFileChanges"
          }
        },
        "required": [
          "result"
        ]
      },
      "git.v1.GetFilesResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/git.v1.RepoFiles"
          }
        },
        "required": [
          "result"
        ]
      },
      "git.v1.GitRepoConfig": {
        "properties": {
          "commit": {
            "description": "Commit SHA. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "credentials": {
            "description": "Credentials are looked under the key <name>/<creds>",
            "type": "string"
          },
          "path": {
            "description": "Path to limit the import to",
            "type": "string"
          },
          "reference": {
            "description": "Remote reference. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "ssh_credentials": {
            "$ref": "#/components/schemas/git.v1.SSHCredentials"
          },
          "url": {
            "description": "Repository URL",
            "type": "string"
          }
        },
        "required": [
          "commit",
          "credentials",
          "path",
          "reference",
          "url"
        ]
      },
      "git.v1.PostCommitResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/git.v1.Commit"
          }
        },
        "required": [
          "result"
        ]
      },
      "git.v1.RepoFileChanges": {
        "properties": {
          "branch": {
            "type": "string"
          },
          "changed_files": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "deleted_files": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "files"
        ]
      },
      "git.v1.RepoFiles": {
        "properties": {
          "branch": {
            "type": "string"
          },
          "files": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "files"
        ]
      },
      "git.v1.SSHCredentials": {
        "properties": {
          "passphrase": {
            "description": "Passphrase is looked under the key passphrase/<pass>",
            "type": "string"
          },
          "private_key": {
            "description": "PrivateKey is looked under the key private-key/<key>",
            "type": "string"
          }
        },
        "required": [
          "passphrase",
          "private_key"
        ]
      },
      "git.v1.SourceControlConfig": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/git.v1.GitRepoConfig"
          }
        },
        "required": [
          "origin"
        ]
      },
      "git.v1.VerifiedRepoConfig": {
        "properties": {
          "commit": {
            "description": "Commit SHA. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "credentials": {
            "description": "Credentials are looked under the key <name>/<creds>",
            "type": "string"
          },
          "path": {
            "description": "Path to limit the import to",
            "type": "string"
          },
          "reference": {
            "description": "Remote reference. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "sha": {
            "description": "git SHA fetched from the repository if the provided config is correct. It can either be the HEAD of the configured reference or in the case of specifying a SHA in the config, the returned value will be the configured commit",
            "type": "string"
          },
          "ssh_credentials": {
            "$ref": "#/components/schemas/git.v1.SSHCredentials"
          },
          "url": {
            "description": "Repository URL",
            "type": "string"
          }
        },
        "required": [
          "commit",
          "credentials",
          "path",
          "reference",
          "sha",
          "url"
        ]
      },
      "git.v1.VerifyConfigRequest": {
        "properties": {
          "commit": {
            "description": "Commit SHA. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "credentials": {
            "description": "Credentials are looked under the key <name>/<creds>",
            "type": "string"
          },
          "id": {
            "description": "id of the entity so that the config can be checked for duplicates",
            "type": "string"
          },
          "path": {
            "description": "Path to limit the import to",
            "type": "string"
          },
          "reference": {
            "description": "Remote reference. Only one of reference or commit can be set at any time",
            "type": "string"
          },
          "ssh_credentials": {
            "$ref": "#/components/schemas/git.v1.SSHCredentials"
          },
          "url": {
            "description": "Repository URL",
            "type": "string"
          }
        },
        "required": [
          "commit",
          "credentials",
          "id",
          "path",
          "reference",
          "url"
        ]
      },
      "git.v1.VerifyConfigResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/git.v1.VerifiedRepoConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "identity-providers.v1.ProviderConfig": {
        "properties": {
          "allow_idp_initiated": {
            "type": "boolean"
          },
          "allowed_domains": {
            "description": "allow users from domains",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "auth_url": {
            "type": "string"
          },
          "certificate": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "effective_client_secret": {
            "description": "send instead of ClientSecret for new configs",
            "type": "string"
          },
          "email_attribute": {
            "type": "string"
          },
          "enabled": {
            "description": "whether it can be used as a provider or not",
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "issuer_url": {
            "type": "string"
          },
          "jit": {
            "description": "True, if users are provisioned on-demand",
            "type": "boolean"
          },
          "key_certificate": {
            "type": "string"
          },
          "metadata": {
            "type": "string"
          },
          "override_discovery_issuer_url": {
            "type": "string"
          },
          "private_key": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "proxy_url": {
            "type": "string"
          },
          "redirect_url": {
            "type": "string"
          },
          "response_mode": {
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "skip_token_issuer_check": {
            "type": "boolean"
          },
          "token_url": {
            "type": "string"
          },
          "type": {
            "description": "OIDC (default) or SAML",
            "type": "string"
          },
          "unique_claim": {
            "description": "claim to be used as the unique id for users",
            "type": "string"
          },
          "user_info_url": {
            "type": "string"
          }
        },
        "required": [
          "allow_idp_initiated",
          "allowed_domains",
          "auth_url",
          "certificate",
          "client_id",
          "client_secret",
          "effective_client_secret",
          "email_attribute",
          "enabled",
          "id",
          "issuer_url",
          "jit",
          "key_certificate",
          "metadata",
          "private_key",
          "proxy_url",
          "redirect_url",
          "response_mode",
          "scopes",
          "token_url",
          "type",
          "unique_claim",
          "user_info_url"
        ]
      },
      "identity-providers.v1.ProvidersDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "identity-providers.v1.ProvidersGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/identity-providers.v1.ProviderConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "identity-providers.v1.ProvidersListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/identity-providers.v1.ProviderConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "identity-providers.v1.ProvidersPostRequest": {
        "properties": {
          "allow_idp_initiated": {
            "type": "boolean"
          },
          "allowed_domains": {
            "description": "allow users from domains",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "auth_url": {
            "type": "string"
          },
          "certificate": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "effective_client_secret": {
            "description": "send instead of ClientSecret for new configs",
            "type": "string"
          },
          "email_attribute": {
            "type": "string"
          },
          "enabled": {
            "description": "whether it can be used as a provider or not",
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "issuer_url": {
            "type": "string"
          },
          "jit": {
            "description": "True, if users are provisioned on-demand",
            "type": "boolean"
          },
          "key_certificate": {
            "type": "string"
          },
          "metadata": {
            "type": "string"
          },
          "override_discovery_issuer_url": {
            "type": "string"
          },
          "private_key": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "proxy_url": {
            "type": "string"
          },
          "redirect_url": {
            "type": "string"
          },
          "response_mode": {
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "skip_token_issuer_check": {
            "type": "boolean"
          },
          "token_url": {
            "type": "string"
          },
          "type": {
            "description": "OIDC (default) or SAML",
            "type": "string"
          },
          "unique_claim": {
            "description": "claim to be used as the unique id for users",
            "type": "string"
          },
          "user_info_url": {
            "type": "string"
          }
        },
        "required": [
          "allow_idp_initiated",
          "allowed_domains",
          "auth_url",
          "certificate",
          "client_id",
          "client_secret",
          "effective_client_secret",
          "email_attribute",
          "enabled",
          "id",
          "issuer_url",
          "jit",
          "key_certificate",
          "metadata",
          "private_key",
          "proxy_url",
          "redirect_url",
          "response_mode",
          "scopes",
          "token_url",
          "type",
          "unique_claim",
          "user_info_url"
        ]
      },
      "identity-providers.v1.ProvidersPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "identity-providers.v1.ProvidersPutRequest": {
        "properties": {
          "allow_idp_initiated": {
            "type": "boolean"
          },
          "allowed_domains": {
            "description": "allow users from domains",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "auth_url": {
            "type": "string"
          },
          "certificate": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "client_secret": {
            "type": "string"
          },
          "effective_client_secret": {
            "description": "send instead of ClientSecret for new configs",
            "type": "string"
          },
          "email_attribute": {
            "type": "string"
          },
          "enabled": {
            "description": "whether it can be used as a provider or not",
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "issuer_url": {
            "type": "string"
          },
          "jit": {
            "description": "True, if users are provisioned on-demand",
            "type": "boolean"
          },
          "key_certificate": {
            "type": "string"
          },
          "metadata": {
            "type": "string"
          },
          "override_discovery_issuer_url": {
            "type": "string"
          },
          "private_key": {
            "description": "send instead of KeyCertificate for new configs",
            "type": "string"
          },
          "proxy_url": {
            "type": "string"
          },
          "redirect_url": {
            "type": "string"
          },
          "response_mode": {
            "type": "string"
          },
          "scopes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "skip_token_issuer_check": {
            "type": "boolean"
          },
          "token_url": {
            "type": "string"
          },
          "type": {
            "description": "OIDC (default) or SAML",
            "type": "string"
          },
          "unique_claim": {
            "description": "claim to be used as the unique id for users",
            "type": "string"
          },
          "user_info_url": {
            "type": "string"
          }
        },
        "required": [
          "allow_idp_initiated",
          "allowed_domains",
          "auth_url",
          "certificate",
          "client_id",
          "client_secret",
          "effective_client_secret",
          "email_attribute",
          "enabled",
          "id",
          "issuer_url",
          "jit",
          "key_certificate",
          "metadata",
          "private_key",
          "proxy_url",
          "redirect_url",
          "response_mode",
          "scopes",
          "token_url",
          "type",
          "unique_claim",
          "user_info_url"
        ]
      },
      "identity-providers.v1.ProvidersPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "identity-providers.v1.ValidatePostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/identity-providers.v1.ValidateResponse"
          }
        },
        "required": [
          "result"
        ]
      },
      "identity-providers.v1.ValidateResponse": {
        "properties": {
          "redirect_url": {
            "type": "string"
          }
        },
        "required": [
          "redirect_url"
        ]
      },
      "integrations.v1.Mapping": {
        "properties": {
          "das_system": {
            "type": "string"
          },
          "terraform_workspaces": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "das_system",
          "terraform_workspaces"
        ]
      },
      "integrations.v1.MappingsResponse": {
        "properties": {
          "result": {
            "items": {
              "$ref": "#/components/schemas/integrations.v1.Mapping"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "integrations.v1.UpsertMappingsRequest": {
        "properties": {
          "mappings": {
            "items": {
              "$ref": "#/components/schemas/integrations.v1.Mapping"
            },
            "type": "array"
          }
        },
        "required": [
          "mappings"
        ]
      },
      "integrations.v1.UpsertRunTaskRequest": {
        "properties": {
          "terraform_org": {
            "type": "string"
          },
          "terraform_run_task_domain": {
            "type": "string"
          },
          "terraform_token": {
            "type": "string"
          }
        },
        "required": [
          "terraform_org",
          "terraform_run_task_domain",
          "terraform_token"
        ]
      },
      "integrations.v1.hashicorp.RunTaskCallbackRequest": {
        "properties": {
          "access_token": {
            "type": "string"
          },
          "is_speculative": {
            "type": "boolean"
          },
          "organization_name": {
            "type": "string"
          },
          "payload_version": {
            "format": "int32",
            "type": "integer"
          },
          "plan_json_api_url": {
            "type": "string"
          },
          "run_app_url": {
            "type": "string"
          },
          "run_created_at": {
            "type": "string"
          },
          "run_created_by": {
            "type": "string"
          },
          "run_id": {
            "type": "string"
          },
          "run_message": {
            "type": "string"
          },
          "stage": {
            "type": "string"
          },
          "task_result_callback_url": {
            "type": "string"
          },
          "task_result_enforcement_level": {
            "type": "string"
          },
          "task_result_id": {
            "type": "string"
          },
          "vcs_branch": {
            "type": "string"
          },
          "vcs_commit_url": {
            "type": "string"
          },
          "vcs_pull_request_url": {
            "type": "string"
          },
          "vcs_repo_url": {
            "type": "string"
          },
          "workspace_app_url": {
            "type": "string"
          },
          "workspace_id": {
            "type": "string"
          },
          "workspace_name": {
            "type": "string"
          }
        },
        "required": [
          "is_speculative"
        ]
      },
      "integrations.v1.hashicorp.RunTaskResponse": {
        "properties": {
          "data": {
            "$ref": "#/components/schemas/.data"
          }
        },
        "required": [
          "data"
        ]
      },
      "invitations.v1.Invitation": {
        "properties": {
          "expiration": {
            "description": "invitation expiration date/time",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "invitation ID (user ID)",
            "type": "string"
          }
        },
        "required": [
          "expiration",
          "id"
        ]
      },
      "invitations.v1.InvitationResponse": {
        "properties": {
          "url": {
            "description": "invitation URL",
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "invitations.v1.InvitationsDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "invitations.v1.InvitationsGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/invitations.v1.Invitation"
          }
        },
        "required": [
          "result"
        ]
      },
      "invitations.v1.InvitationsListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/invitations.v1.Invitation"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "invitations.v1.InvitationsPostRequest": {
        "properties": {
          "roles": {
            "description": "list of roles for the invited user",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "user_id": {
            "description": "user ID to create invitation for",
            "type": "string"
          }
        },
        "required": [
          "roles",
          "user_id"
        ]
      },
      "invitations.v1.InvitationsPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/invitations.v1.InvitationResponse"
          }
        }
      },
      "invitations.v1.InvitationsPutRequest": {
        "properties": {
          "password": {
            "description": "new user password",
            "type": "string"
          },
          "user_id": {
            "description": "new user ID",
            "type": "string"
          }
        },
        "required": [
          "password",
          "user_id"
        ]
      },
      "invitations.v1.InvitationsPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "keys.Config": {
        "properties": {
          "algorithm": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "private_key": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          }
        },
        "required": [
          "algorithm",
          "key",
          "private_key",
          "scope"
        ]
      },
      "libraries.v1.CreateLibraryRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/libraries.v1.SourceControlConfig"
          }
        },
        "required": [
          "description",
          "read_only"
        ]
      },
      "libraries.v1.LibrariesListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/libraries.v1.LibraryEntity"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "libraries.v1.LibrariesTestsRequest": {
        "properties": {
          "drafts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "draft policies to be used for 'new' violations computation (path => rego)",
            "type": "object"
          },
          "mode": {
            "default": "delta",
            "description": "validation mode. One of (delta, all, delta-count, all-count)",
            "type": "string"
          },
          "policy_type": {
            "description": "policy type to narrow the monitor policy search (e.g. validating, mutating). Default (empty string or missing) is to run all monitoring policies",
            "type": "string"
          }
        }
      },
      "libraries.v1.LibrariesTestsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.UnitTestsValidation"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "libraries.v1.LibraryEntity": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v2.ObjectMeta"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/libraries.v1.SourceControlConfig"
          }
        },
        "required": [
          "description",
          "id",
          "read_only"
        ]
      },
      "libraries.v1.LibraryEntityExpanded": {
        "properties": {
          "datasources": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.DatasourceConfig"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v2.ObjectMeta"
          },
          "policies": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.PolicyConfig"
            },
            "type": "array"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/libraries.v1.SourceControlConfig"
          },
          "used_by": {
            "items": {
              "$ref": "#/components/schemas/libraries.v1.SystemUsingLibrary"
            },
            "type": "array"
          }
        },
        "required": [
          "datasources",
          "description",
          "id",
          "policies",
          "read_only"
        ]
      },
      "libraries.v1.LibraryResponse": {
        "properties": {
          "result": {
            "$ref": "#/components/schemas/libraries.v1.LibraryEntityExpanded"
          }
        },
        "required": [
          "result"
        ]
      },
      "libraries.v1.SourceControlConfig": {
        "properties": {
          "library_origin": {
            "$ref": "#/components/schemas/git.v1.GitRepoConfig"
          },
          "origin": {
            "$ref": "#/components/schemas/git.v1.GitRepoConfig"
          },
          "use_workspace_settings": {
            "type": "boolean"
          }
        },
        "required": [
          "use_workspace_settings"
        ]
      },
      "libraries.v1.SystemBundle": {
        "properties": {
          "bundle_id": {
            "type": "string"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "bundle_id",
          "version"
        ]
      },
      "libraries.v1.SystemUsingLibrary": {
        "properties": {
          "bundles": {
            "items": {
              "$ref": "#/components/schemas/libraries.v1.SystemBundle"
            },
            "type": "array"
          },
          "system_id": {
            "type": "string"
          }
        },
        "required": [
          "system_id"
        ]
      },
      "location.Location": {
        "properties": {
          "col": {
            "format": "int32",
            "type": "integer"
          },
          "file": {
            "type": "string"
          },
          "row": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "col",
          "file",
          "row"
        ]
      },
      "logreplay.v1.EntryReplayResult": {
        "properties": {
          "batch_decision_id": {
            "description": "unique batch decision ID",
            "type": "string"
          },
          "bundles": {
            "additionalProperties": {
              "$ref": "#/components/schemas/logs.BundleInfoV1"
            },
            "description": "configured bundles",
            "type": "object"
          },
          "count": {
            "description": "number of times this decision was observed",
            "format": "int32",
            "type": "integer"
          },
          "decision_id": {
            "description": "unique decision ID",
            "type": "string"
          },
          "erased": {
            "description": "erased fields",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "error": {
            "description": "evaluation error",
            "type": "string"
          },
          "input": {
            "$ref": "#/components/schemas/analysis.v1.LogEntry.input"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "OPA labels",
            "type": "object"
          },
          "metrics": {
            "description": "decision metrics",
            "type": "object"
          },
          "nd_builtin_cache": {
            "additionalProperties": {
              "$ref": "#/components/schemas/analysis.v1.LogEntry.nd_builtin_cache"
            },
            "description": "OPA-side cache that stores results of builtin non-deterministic operations",
            "type": "object"
          },
          "new_result": {
            "$ref": "#/components/schemas/logreplay.v1.EntryReplayResult.new_result"
          },
          "path": {
            "description": "evaluated path",
            "type": "string"
          },
          "query": {
            "description": "ad-hoc query",
            "type": "string"
          },
          "req_id": {
            "description": "request ID",
            "format": "integer",
            "type": "integer"
          },
          "request_context": {
            "$ref": "#/components/schemas/logs.RequestContext"
          },
          "requested_by": {
            "description": "requested by IP:port",
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/analysis.v1.LogEntry.result"
          },
          "revision": {
            "description": "bundle revision",
            "type": "string"
          },
          "timestamp": {
            "description": "OPA-side decision timestamp",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "count"
        ]
      },
      "logreplay.v1.EntryReplayResult.new_result": {},
      "logreplay.v1.ReplayRequest": {
        "properties": {
          "compare_full_results": {
            "default": false,
            "description": "do not compare decisions by system-type-dependent significant fields",
            "type": "boolean"
          },
          "data_patches": {
            "description": "list of JSON Patches to apply to the data namespace",
            "items": {
              "items": {
                "$ref": "#/components/schemas/logreplay.v1.ReplayRequest.data_patches"
              },
              "type": "array"
            },
            "type": "array"
          },
          "decision_patches": {
            "description": "list of JSON Patches to apply to the decisions before they evaluated",
            "items": {
              "items": {
                "$ref": "#/components/schemas/logreplay.v1.ReplayRequest.decision_patches"
              },
              "type": "array"
            },
            "type": "array"
          },
          "deterministic_policies": {
            "default": true,
            "description": "signals that decisions having the same inputs, data and revision always evaluate to the same result and therefore can be cached",
            "type": "boolean"
          },
          "duration": {
            "description": "maximum replay duration (e.g. \"20s\")",
            "type": "string"
          },
          "max_samples": {
            "description": "maximum number of samples to return",
            "format": "int32",
            "type": "integer"
          },
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocks"
          },
          "policies": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "modified rego policies (path => rego content)",
            "type": "object"
          },
          "scope": {
            "description": "list of scopes to narrow the decision search",
            "items": {
              "$ref": "#/components/schemas/logreplay.v1.ReplayScope"
            },
            "type": "array"
          },
          "skip_batches": {
            "description": "list of batch IDs to skip",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        }
      },
      "logreplay.v1.ReplayRequest.data_patches": {
        "type": "object"
      },
      "logreplay.v1.ReplayRequest.decision_patches": {
        "type": "object"
      },
      "logreplay.v1.ReplayResponse": {
        "properties": {
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocksResponse"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/logreplay.v1.ReplayResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "logreplay.v1.ReplayResult": {
        "properties": {
          "analyzed_batches": {
            "description": "analyzed decision batches IDs to be used for skip_batches in subsequent requests",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "duration": {
            "description": "replay duration",
            "format": "int64",
            "type": "integer"
          },
          "samples": {
            "description": "representative change samples",
            "items": {
              "$ref": "#/components/schemas/logreplay.v1.EntryReplayResult"
            },
            "type": "array"
          },
          "started": {
            "description": "replay start time",
            "format": "date-time",
            "type": "string"
          },
          "stats": {
            "$ref": "#/components/schemas/logreplay.v1.ReplayStats"
          }
        },
        "required": [
          "analyzed_batches",
          "duration",
          "samples",
          "started",
          "stats"
        ]
      },
      "logreplay.v1.ReplayScope": {
        "properties": {
          "max_age": {
            "description": "maximum decision age (either in relative duration or in absolute time string)",
            "type": "string"
          },
          "max_revisions": {
            "default": 1,
            "description": "maximum number of revisions to analyze back from the latest revision",
            "format": "int64",
            "type": "integer"
          },
          "min_age": {
            "description": "minimum decision age (either in relative duration or in absolute time string)",
            "type": "string"
          },
          "path": {
            "description": "decision path must overlap with this one (can be subpath of the decision path to compare portion of the result)",
            "type": "string"
          }
        }
      },
      "logreplay.v1.ReplayStats": {
        "properties": {
          "analysis_errors": {
            "description": "number of invalid decisions that could not be replayed (<= entries_evaluated)",
            "format": "int64",
            "type": "integer"
          },
          "batches_analyzed": {
            "description": "number of fully analyzed decision batches (<= batches_observed)",
            "format": "int64",
            "type": "integer"
          },
          "batches_download_errors": {
            "description": "number of decision batches that could not be downloaded",
            "format": "int64",
            "type": "integer"
          },
          "batches_downloaded": {
            "description": "number of downloaded decision batches (<= batches_scheduled)",
            "format": "int64",
            "type": "integer"
          },
          "batches_from_cache": {
            "description": "number of downloaded decision batches taken from the cache (<= batches_downloaded)",
            "format": "int64",
            "type": "integer"
          },
          "batches_observed": {
            "description": "number of decision batches picked by the analyzers (<= batches_downloaded)",
            "format": "int64",
            "type": "integer"
          },
          "batches_scheduled": {
            "description": "number of decision batches scheduled for download",
            "format": "int64",
            "type": "integer"
          },
          "batches_skipped": {
            "description": "number of decision batches skipped due to the skip_batches input or pre-filtration (timestamp range, system/stack IDs)",
            "format": "int64",
            "type": "integer"
          },
          "entries_evaluated": {
            "description": "number of replayed decisions (<= entries_scheduled)",
            "format": "int64",
            "type": "integer"
          },
          "entries_failed": {
            "description": "number of decisions evaluated to error (<= entries_evaluated)",
            "format": "int64",
            "type": "integer"
          },
          "entries_observed": {
            "description": "number of decisions in batches_observed batches",
            "format": "int64",
            "type": "integer"
          },
          "entries_scheduled": {
            "description": "number of decisions scheduled for replay (<= entries_observed)",
            "format": "int64",
            "type": "integer"
          },
          "results_changed": {
            "description": "number of observed decision changes (<= entries_evaluated)",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "analysis_errors",
          "batches_analyzed",
          "batches_download_errors",
          "batches_downloaded",
          "batches_from_cache",
          "batches_observed",
          "batches_scheduled",
          "batches_skipped",
          "entries_evaluated",
          "entries_failed",
          "entries_observed",
          "entries_scheduled",
          "results_changed"
        ]
      },
      "logreplay.v2.BundleFilter": {
        "properties": {
          "active_from": {
            "description": "minimum inclusive 'active' value of the bundle",
            "format": "int64",
            "type": "integer"
          },
          "active_to": {
            "description": "maximum inclusive 'active' value of the bundle",
            "format": "int64",
            "type": "integer"
          },
          "bundle_id": {
            "description": "bundle ID. Defaults to 'policy'",
            "type": "string"
          },
          "created_from": {
            "description": "minimum inclusive 'created_at' time of the bundle",
            "format": "date-time",
            "type": "string"
          },
          "created_to": {
            "description": "maximum exclusive 'created_at' time of the bundle",
            "format": "date-time",
            "type": "string"
          },
          "last_deployed_from": {
            "description": "minimum inclusive 'last_deployed_at' time of the bundle",
            "format": "date-time",
            "type": "string"
          },
          "last_deployed_to": {
            "description": "maximum exclusive 'last_deployed_at' time of the bundle",
            "format": "date-time",
            "type": "string"
          },
          "reverse_versioning": {
            "description": "true to reverse version numbers so that 0 becomes the latest version",
            "type": "boolean"
          },
          "version_from": {
            "description": "minimum inclusive bundle version number",
            "format": "int64",
            "type": "integer"
          },
          "version_to": {
            "description": "maximum inclusive bundle version number",
            "format": "int64",
            "type": "integer"
          }
        }
      },
      "logreplay.v2.DraftSpec": {
        "properties": {
          "contents": {
            "$ref": "#/components/schemas/logreplay.v2.DraftSpec.contents"
          },
          "datasources": {
            "description": "use latest version of all datasources found under the path",
            "type": "boolean"
          },
          "patches": {
            "description": "JSONPatch to be applied to the datasource. Mutually exclusive with 'contents' and 'policy'",
            "items": {
              "items": {
                "$ref": "#/components/schemas/logreplay.v2.DraftSpec.patches"
              },
              "type": "array"
            },
            "type": "array"
          },
          "policy": {
            "$ref": "#/components/schemas/logreplay.v2.PolicyRef"
          }
        }
      },
      "logreplay.v2.DraftSpec.contents": {},
      "logreplay.v2.DraftSpec.patches": {
        "type": "object"
      },
      "logreplay.v2.PolicyRef": {
        "properties": {
          "context": {
            "description": "policy context name to use. Defaults to the current user name",
            "type": "string"
          },
          "overlays": {
            "description": "list of policy overlays (stash, draft, review, published, protected) to look up in visit order",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "overlays"
        ]
      },
      "logreplay.v2.ReplayRequest": {
        "properties": {
          "bundle_filters": {
            "additionalProperties": {
              "$ref": "#/components/schemas/logreplay.v2.BundleFilter"
            },
            "description": "system ID -> bundle filter mapping specifying which bundles to consider for each system. Use empty string or '*' to provide default filter",
            "type": "object"
          },
          "compare_full_results": {
            "default": false,
            "description": "do not compare decisions by system-type-dependent significant fields",
            "type": "boolean"
          },
          "decision_patches": {
            "description": "list of JSON Patches to apply to the decisions before they evaluated",
            "items": {
              "items": {
                "$ref": "#/components/schemas/logreplay.v2.ReplayRequest.decision_patches"
              },
              "type": "array"
            },
            "type": "array"
          },
          "drafts": {
            "additionalProperties": {
              "$ref": "#/components/schemas/logreplay.v2.DraftSpec"
            },
            "description": "modifications to make to policies or data",
            "type": "object"
          },
          "duration": {
            "description": "maximum replay duration (e.g. \"20s\")",
            "type": "string"
          },
          "max_samples": {
            "description": "maximum number of samples to return",
            "format": "int32",
            "type": "integer"
          },
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocks"
          },
          "path_filters": {
            "description": "list of path filters. Each entry is either a path prefix that the decision path must begin with or the decision path must be prefix of the entry",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "skip_batches": {
            "description": "list of batch IDs to skip",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "systems": {
            "description": "list of system IDs. If provided, systems that are not in the list won't be replayed even if affected by one of the drafts'",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        }
      },
      "logreplay.v2.ReplayRequest.decision_patches": {
        "type": "object"
      },
      "logs.BundleInfoV1": {
        "properties": {
          "revision": {
            "type": "string"
          }
        }
      },
      "logs.HTTPRequestContext": {
        "properties": {
          "headers": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object"
          }
        }
      },
      "logs.RequestContext": {
        "properties": {
          "http": {
            "$ref": "#/components/schemas/logs.HTTPRequestContext"
          }
        }
      },
      "logs.v1.PostDecisionsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "meta.v1.ErrorResponse": {
        "properties": {
          "code": {
            "type": "string"
          },
          "errors": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ]
      },
      "meta.v1.ObjectMeta": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "created_through": {
            "type": "string"
          },
          "last_modified_at": {
            "format": "date-time",
            "type": "string"
          },
          "last_modified_by": {
            "type": "string"
          },
          "last_modified_through": {
            "type": "string"
          }
        }
      },
      "meta.v1.RequestObject": {
        "type": "object"
      },
      "meta.v1.ResponseHeader": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "meta.v1.Status": {
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message",
          "timestamp"
        ]
      },
      "meta.v2.ErrorResponse": {
        "properties": {
          "Error": {
            "type": "string"
          }
        },
        "required": [
          "Error"
        ]
      },
      "meta.v2.ObjectMeta": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "created_through": {
            "type": "string"
          },
          "last_modified_at": {
            "format": "date-time",
            "type": "string"
          },
          "last_modified_by": {
            "type": "string"
          },
          "last_modified_through": {
            "type": "string"
          }
        }
      },
      "mock-opa.v1.MockOpaConfig": {
        "properties": {
          "expires": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v2.ObjectMeta"
          },
          "system_id": {
            "type": "string"
          }
        },
        "required": [
          "expires",
          "id",
          "metadata",
          "system_id"
        ]
      },
      "mock-opa.v1.MockOpaDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "mock-opa.v1.MockOpaGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/mock-opa.v1.MockOpaConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "mock-opa.v1.MockOpaInfo": {
        "properties": {
          "supported_system_types": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "supported_system_types"
        ]
      },
      "mock-opa.v1.MockOpaInfoResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/mock-opa.v1.MockOpaInfo"
          }
        },
        "required": [
          "result"
        ]
      },
      "mock-opa.v1.MockOpaListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/mock-opa.v1.MockOpaConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "mock-opa.v1.MockOpaPostRequest": {
        "properties": {
          "duration": {
            "type": "string"
          },
          "system_id": {
            "type": "string"
          }
        },
        "required": [
          "duration",
          "system_id"
        ]
      },
      "mock-opa.v1.MockOpaPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/mock-opa.v1.MockOpaConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "notifications.v1.NotificationInstallNewStateResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "notifications.v1.NotificationIntegrationResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "response_url": {
            "type": "string"
          }
        }
      },
      "notifications.v1.NotificationToolDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "notifications.v1.NotificationToolResult": {
        "properties": {
          "installed": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "notifications.v1.NotificationToolStatusResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/notifications.v1.NotificationToolResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "notifications.v1.NotificationToolTokenRequest": {
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ]
      },
      "notifications.v1.NotificationToolTokenResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "passwords.v1.Feedback": {
        "properties": {
          "suggestions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "warning": {
            "type": "string"
          }
        },
        "required": [
          "suggestions",
          "warning"
        ]
      },
      "passwords.v1.PasswordResetRequest": {
        "properties": {
          "password": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          }
        },
        "required": [
          "password",
          "user_id"
        ]
      },
      "passwords.v1.PasswordResetResponse": {
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "passwords.v1.PasswordStrength": {
        "properties": {
          "cracktime": {
            "format": "double",
            "type": "number"
          },
          "cracktime_display": {
            "type": "string"
          },
          "feedback": {
            "$ref": "#/components/schemas/passwords.v1.Feedback"
          },
          "max": {
            "format": "int32",
            "type": "integer"
          },
          "min": {
            "format": "int32",
            "type": "integer"
          },
          "pass": {
            "format": "int32",
            "type": "integer"
          },
          "score": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "cracktime",
          "cracktime_display",
          "max",
          "min",
          "pass",
          "score"
        ]
      },
      "passwords.v1.PasswordStrengthPostRequest": {
        "properties": {
          "password": {
            "type": "string"
          }
        },
        "required": [
          "password"
        ]
      },
      "passwords.v1.PasswordStrengthPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/passwords.v1.PasswordStrength"
          }
        },
        "required": [
          "result"
        ]
      },
      "policies.v1.PoliciesBulkUploadResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "policies.v1.PoliciesListResponse": {
        "properties": {
          "metadata": {
            "items": {
              "$ref": "#/components/schemas/meta.v1.ObjectMeta"
            },
            "type": "array"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/policies.v1.PoliciesListResponse.result"
          }
        },
        "required": [
          "result"
        ]
      },
      "policies.v1.PoliciesListResponse.result": {},
      "policies.v1.PoliciesPutRequest": {
        "properties": {
          "modules": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "module file name to rego (and also data.json/data.yaml if enabled for the tenant) contents dictionary",
            "type": "object"
          },
          "signature": {
            "$ref": "#/components/schemas/crypto.Signature"
          }
        },
        "required": [
          "modules"
        ]
      },
      "policies.v1.PolicyDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "policies.v1.PolicyGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/policies.v1.PolicyGetResponse.result"
          }
        },
        "required": [
          "result"
        ]
      },
      "policies.v1.PolicyGetResponse.result": {},
      "policies.v1.PolicyPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "policies.v1.RuleCounts": {
        "properties": {
          "allow": {
            "description": "number of allow rules",
            "format": "int32",
            "type": "integer"
          },
          "deny": {
            "description": "number of deny rules",
            "format": "int32",
            "type": "integer"
          },
          "enforce": {
            "description": "number of enforce rules",
            "format": "int32",
            "type": "integer"
          },
          "ignore": {
            "description": "number of ignore rules",
            "format": "int32",
            "type": "integer"
          },
          "monitor": {
            "description": "number of monitor rules",
            "format": "int32",
            "type": "integer"
          },
          "notify": {
            "description": "number of notify rules",
            "format": "int32",
            "type": "integer"
          },
          "other": {
            "description": "number of unclassified rules",
            "format": "int32",
            "type": "integer"
          },
          "test": {
            "description": "number of test rules",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "total number of rules",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "allow",
          "deny",
          "enforce",
          "ignore",
          "monitor",
          "notify",
          "other",
          "test",
          "total"
        ]
      },
      "relay.protocol.Client": {
        "properties": {
          "client_id": {
            "type": "string"
          },
          "client_key": {
            "type": "string"
          },
          "remote_address": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "relay.protocol.ClientsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/relay.protocol.Client"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "secrets.v1.Secret": {
        "properties": {
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "id",
          "metadata",
          "name"
        ]
      },
      "secrets.v1.SecretsDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "secrets.v1.SecretsGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/secrets.v1.Secret"
          }
        }
      },
      "secrets.v1.SecretsListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/secrets.v1.Secret"
            },
            "type": "array"
          }
        }
      },
      "secrets.v1.SecretsPutRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "name",
          "secret"
        ]
      },
      "secrets.v1.SecretsPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "services.authz.decision.Decision": {
        "properties": {
          "input": {
            "$ref": "#/components/schemas/services.authz.decision.Input"
          },
          "output": {
            "$ref": "#/components/schemas/services.authz.decision.Output"
          }
        },
        "required": [
          "input",
          "output"
        ]
      },
      "services.authz.decision.Input": {
        "properties": {
          "body": {
            "type": "object"
          },
          "method": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "user": {
            "type": "string"
          },
          "user_claims": {
            "type": "object"
          }
        },
        "required": [
          "method",
          "path",
          "user"
        ]
      },
      "services.authz.decision.Output": {
        "properties": {
          "allow": {
            "type": "boolean"
          },
          "status": {
            "$ref": "#/components/schemas/.status"
          }
        },
        "required": [
          "allow",
          "status"
        ]
      },
      "services.policies.v1.rego.FormatInput": {
        "properties": {
          "input": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "input"
        ]
      },
      "services.policies.v1.rego.FormatResponse": {
        "properties": {
          "errors": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/services.policies.v1.rego.FormatResponse.errors"
              },
              "type": "array"
            },
            "type": "object"
          },
          "metadata": {
            "items": {
              "$ref": "#/components/schemas/meta.v1.ObjectMeta"
            },
            "type": "array"
          },
          "output": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "request_id": {
            "type": "string"
          }
        },
        "required": [
          "errors",
          "output"
        ]
      },
      "services.policies.v1.rego.FormatResponse.errors": {
        "type": "object"
      },
      "stacks.v1.SourceControlConfig": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/git.v1.GitRepoConfig"
          },
          "stack_origin": {
            "$ref": "#/components/schemas/git.v1.GitRepoConfig"
          },
          "use_workspace_settings": {
            "type": "boolean"
          }
        },
        "required": [
          "use_workspace_settings"
        ]
      },
      "stacks.v1.StackConfig": {
        "properties": {
          "authz": {
            "$ref": "#/components/schemas/systems.v1.AuthzConfig"
          },
          "datasources": {
            "description": "datasources created for the stack",
            "items": {
              "$ref": "#/components/schemas/systems.v1.DatasourceConfig"
            },
            "readOnly": true,
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "errors": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.AgentErrors"
            },
            "description": "current stack deployment errors",
            "readOnly": true,
            "type": "object"
          },
          "id": {
            "type": "string"
          },
          "info": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/meta.v1.Status"
              },
              "type": "array"
            },
            "description": "current stack info messages",
            "readOnly": true,
            "type": "object"
          },
          "matching_systems": {
            "description": "IDs of systems matching the stack",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "migration_history": {
            "description": "A history of any migrations performed on this stack",
            "items": {
              "$ref": "#/components/schemas/systems.v1.MigrationRecord"
            },
            "readOnly": true,
            "type": "array"
          },
          "minimum_opa_version": {
            "description": "minimum running OPA version for any of the matching systems",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "policies": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.PolicyConfig"
            },
            "type": "array"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/stacks.v1.SourceControlConfig"
          },
          "status": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "type_parameters": {
            "description": "stack type parameter values (for template.* types)",
            "type": "object"
          },
          "warnings": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/meta.v1.Status"
              },
              "type": "array"
            },
            "description": "current stack deployment warnings",
            "readOnly": true,
            "type": "object"
          }
        },
        "required": [
          "description",
          "id",
          "name",
          "policies",
          "read_only",
          "status",
          "type"
        ]
      },
      "stacks.v1.StacksComplianceRequest": {
        "properties": {
          "drafts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "draft policies to be used for 'new' violations computation (path => rego)",
            "type": "object"
          },
          "extended": {
            "description": "run extended compliance validation that is specific for the system/stack type",
            "type": "boolean"
          },
          "filter": {
            "description": "filter violations with this selector (dot.path => value)",
            "type": "object"
          },
          "group_by": {
            "description": "group results by dot.path values (list of group levels with list of fields at each level)",
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "limit": {
            "description": "maximum number of violations to return per monitor",
            "format": "int32",
            "type": "integer"
          },
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocks"
          },
          "mode": {
            "default": "delta",
            "description": "validation mode. One of (delta, all, delta-count, all-count)",
            "type": "string"
          },
          "policy_type": {
            "description": "policy type to narrow the monitor policy search (e.g. validating, mutating). Default (empty string or missing) is to run all monitoring policies",
            "type": "string"
          },
          "sort": {
            "description": "list of fields to sort by",
            "items": {
              "$ref": "#/components/schemas/systems.v1.SortField"
            },
            "type": "array"
          }
        }
      },
      "stacks.v1.StacksComplianceResponse": {
        "properties": {
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocksResponse"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "stacks.v1.StacksDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "stacks.v1.StacksGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/stacks.v1.StackConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "stacks.v1.StacksListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/stacks.v1.StackConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "stacks.v1.StacksMigrationRequest": {
        "properties": {
          "type": {
            "description": "The system type ID to migrate the current system to",
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "stacks.v1.StacksPostRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/stacks.v1.SourceControlConfig"
          },
          "type": {
            "type": "string"
          },
          "type_parameters": {
            "description": "stack type parameter values (for template.* types)",
            "type": "object"
          }
        },
        "required": [
          "description",
          "name",
          "read_only",
          "type"
        ]
      },
      "stacks.v1.StacksPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/stacks.v1.StackConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "stacks.v1.StacksPutRequest": {
        "properties": {
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "read_only": {
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/stacks.v1.SourceControlConfig"
          },
          "type": {
            "type": "string"
          },
          "type_parameters": {
            "description": "stack type parameter values (for template.* types)",
            "type": "object"
          }
        },
        "required": [
          "description",
          "name",
          "read_only",
          "type"
        ]
      },
      "stacks.v1.StacksPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "stacks.v1.StacksTestsRequest": {
        "properties": {
          "drafts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "draft policies to be used for 'new' violations computation (path => rego)",
            "type": "object"
          },
          "mode": {
            "default": "delta",
            "description": "validation mode. One of (delta, all, delta-count, all-count)",
            "type": "string"
          },
          "policy_type": {
            "description": "policy type to narrow the monitor policy search (e.g. validating, mutating). Default (empty string or missing) is to run all monitoring policies",
            "type": "string"
          }
        }
      },
      "stacks.v1.StacksTestsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.UnitTestsValidation"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "status.v1.AgentStatus": {
        "type": "object"
      },
      "status.v1.DeleteAgentResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "status.v1.StatusGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/status.v1.AgentStatus"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "status.v1.StatusPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "systems.v1.AgentConfig": {
        "properties": {
          "id": {
            "description": "agent ID",
            "type": "string"
          },
          "status": {
            "description": "agent status",
            "readOnly": true,
            "type": "object"
          }
        },
        "required": [
          "id"
        ]
      },
      "systems.v1.AgentErrors": {
        "properties": {
          "errors": {
            "description": "list of system errors",
            "items": {
              "$ref": "#/components/schemas/meta.v1.Status"
            },
            "type": "array"
          },
          "waiting": {
            "description": "true if the the system is waiting for error to be resolved",
            "type": "boolean"
          }
        },
        "required": [
          "errors",
          "waiting"
        ]
      },
      "systems.v1.AllowedMapping": {
        "properties": {
          "expected": {
            "$ref": "#/components/schemas/systems.v1.AllowedMapping.expected"
          },
          "negated": {
            "default": false,
            "description": "when set to true, decision is Allowed when the mapped property IS NOT equal to the expected value",
            "type": "boolean"
          },
          "path": {
            "description": "dot-separated decision property path",
            "type": "string"
          }
        },
        "required": [
          "path"
        ]
      },
      "systems.v1.AllowedMapping.expected": {},
      "systems.v1.AuthzConfig": {
        "properties": {
          "role_bindings": {
            "description": "a list of role binding configs",
            "items": {
              "$ref": "#/components/schemas/systems.v1.V1RoleBindingConfig"
            },
            "readOnly": true,
            "type": "array"
          }
        }
      },
      "systems.v1.AwsEnvironmentCredentialService": {},
      "systems.v1.AwsMetadataCredentialService": {
        "properties": {
          "aws_region": {
            "description": "the AWS region to use for the AWS signing service credential method",
            "type": "string"
          },
          "iam_role": {
            "description": "the IAM role to use for the AWS signing service credential method",
            "type": "string"
          }
        },
        "required": [
          "aws_region"
        ]
      },
      "systems.v1.AwsProfileCredentialService": {
        "properties": {
          "aws_region": {
            "description": "the AWS region to use for the AWS signing service credential method",
            "type": "string"
          },
          "path": {
            "description": "the path to the shared credentials file",
            "type": "string"
          },
          "profile": {
            "description": "AWS Profile to extract credentials from the credentials file",
            "type": "string"
          }
        },
        "required": [
          "aws_region"
        ]
      },
      "systems.v1.AwsSigningAuthPlugin": {
        "properties": {
          "environment_credentials": {
            "$ref": "#/components/schemas/systems.v1.AwsEnvironmentCredentialService"
          },
          "metadata_credentials": {
            "$ref": "#/components/schemas/systems.v1.AwsMetadataCredentialService"
          },
          "profile_credentials": {
            "$ref": "#/components/schemas/systems.v1.AwsProfileCredentialService"
          },
          "service": {
            "description": "the AWS service to sign requests with, eg execute-api or s3 (default: s3)",
            "type": "string"
          },
          "web_identity_credentials": {
            "$ref": "#/components/schemas/systems.v1.AwsWebIdentityCredentialService"
          }
        }
      },
      "systems.v1.AwsWebIdentityCredentialService": {
        "properties": {
          "aws_region": {
            "description": "the AWS region to use for the sts regional endpoint (default: global)",
            "type": "string"
          },
          "session_name": {
            "description": "the session name used to identify the assumed role session (default: open-policy-agent)",
            "type": "string"
          }
        },
        "required": [
          "aws_region",
          "session_name"
        ]
      },
      "systems.v1.AzureManagedIdentitiesAuthPlugin": {
        "properties": {
          "api_version": {
            "description": "API version to use",
            "type": "string"
          },
          "client_id": {
            "description": "optional client ID of the managed identity you would like the token for, required if your VM has multiple user-assigned managed identities",
            "type": "string"
          },
          "endpoint": {
            "description": "request endpoint",
            "type": "string"
          },
          "mi_res_id": {
            "description": "optional Azure Resource ID of the managed identity you would like the token for, required, if your VM has multiple user-assigned managed identities",
            "type": "string"
          },
          "object_id": {
            "description": "optional object ID of the managed identity you would like the token for, required if your VM has multiple user-assigned managed identities",
            "type": "string"
          },
          "resource": {
            "description": "app ID URI of the target resource",
            "type": "string"
          }
        },
        "required": [
          "api_version",
          "client_id",
          "endpoint",
          "mi_res_id",
          "object_id",
          "resource"
        ]
      },
      "systems.v1.BearerAuthPlugin": {
        "properties": {
          "scheme": {
            "description": "bearer token scheme to specify",
            "type": "string"
          },
          "token": {
            "description": "enables token-based authentication and supplies the bearer token to authenticate with",
            "type": "string"
          },
          "token_path": {
            "description": "enables token-based authentication and supplies the path to the bearer token to authenticate with",
            "type": "string"
          }
        },
        "required": [
          "token",
          "token_path"
        ]
      },
      "systems.v1.Bundle": {
        "properties": {
          "active": {
            "description": "activation percentage",
            "format": "int64",
            "type": "integer"
          },
          "contents_digest": {
            "description": "bundle contents digest except for revision string and the manifest metadata",
            "type": "string"
          },
          "created_at": {
            "description": "when created",
            "format": "date-time",
            "type": "string"
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "digest": {
            "description": "bundle digest",
            "type": "string"
          },
          "download_url": {
            "description": "URL to download the bundle",
            "type": "string"
          },
          "id": {
            "description": "bundle ID",
            "type": "string"
          },
          "kinds": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.BundleKind"
            },
            "description": "the additional bundles in different formats",
            "type": "object"
          },
          "last_deployed_at": {
            "description": "when deployed last, if ever",
            "format": "date-time",
            "type": "string"
          },
          "minimum_opa_version": {
            "description": "minimum OPA version required by the bundle if known",
            "type": "string"
          },
          "origin": {
            "description": "bundle origin",
            "type": "string"
          },
          "revision": {
            "description": "bundle revision identifier",
            "type": "string"
          },
          "revision_digest": {
            "description": "short bundle revision digest",
            "type": "string"
          },
          "sbom": {
            "$ref": "#/components/schemas/bundles.v1.SBOM"
          },
          "size": {
            "description": "size in bytes",
            "format": "int64",
            "type": "integer"
          },
          "system_data": {
            "description": "indicates if the bundle contains any of the system data. Missing if not known",
            "type": "boolean"
          },
          "version": {
            "description": "bundle version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "active",
          "contents_digest",
          "created_at",
          "digest",
          "download_url",
          "id",
          "revision",
          "revision_digest",
          "size",
          "version"
        ]
      },
      "systems.v1.BundleActivation": {
        "properties": {
          "id": {
            "type": "string"
          },
          "revision": {
            "type": "string"
          },
          "version": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "revision",
          "version"
        ]
      },
      "systems.v1.BundleDeployStatus": {
        "properties": {
          "additional_bundles": {
            "description": "primary bundle to activate",
            "items": {
              "$ref": "#/components/schemas/systems.v1.BundleActivation"
            },
            "type": "array"
          },
          "build_errors": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "build errors (per bundle id) when building the latest bundle, if any",
            "type": "object"
          },
          "primary": {
            "$ref": "#/components/schemas/systems.v1.BundleActivation"
          }
        },
        "required": [
          "build_errors"
        ]
      },
      "systems.v1.BundleDetails": {
        "properties": {
          "active": {
            "description": "activation percentage",
            "format": "int64",
            "type": "integer"
          },
          "contents_digest": {
            "description": "bundle contents digest except for revision string and the manifest metadata",
            "type": "string"
          },
          "created_at": {
            "description": "when created",
            "format": "date-time",
            "type": "string"
          },
          "dependencies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "digest": {
            "description": "bundle digest",
            "type": "string"
          },
          "download_url": {
            "description": "URL to download the bundle",
            "type": "string"
          },
          "id": {
            "description": "bundle ID",
            "type": "string"
          },
          "kinds": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.BundleKind"
            },
            "description": "the additional bundles in different formats",
            "type": "object"
          },
          "last_deployed_at": {
            "description": "when deployed last, if ever",
            "format": "date-time",
            "type": "string"
          },
          "minimum_opa_version": {
            "description": "minimum OPA version required by the bundle if known",
            "type": "string"
          },
          "origin": {
            "description": "bundle origin",
            "type": "string"
          },
          "revision": {
            "description": "bundle revision identifier",
            "type": "string"
          },
          "revision_digest": {
            "description": "short bundle revision digest",
            "type": "string"
          },
          "sbom": {
            "$ref": "#/components/schemas/bundles.v1.SBOM"
          },
          "size": {
            "description": "size in bytes",
            "format": "int64",
            "type": "integer"
          },
          "system_data": {
            "description": "indicates if the bundle contains any of the system data. Missing if not known",
            "type": "boolean"
          },
          "version": {
            "description": "bundle version",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "active",
          "contents_digest",
          "created_at",
          "digest",
          "download_url",
          "id",
          "revision",
          "revision_digest",
          "size",
          "version"
        ]
      },
      "systems.v1.BundleDistributionS3Config": {
        "properties": {
          "access_keys": {
            "description": "access key id and secret access key are looked under the key <name>/<access_keys>",
            "type": "string"
          },
          "bucket": {
            "description": "bucket name",
            "type": "string"
          },
          "context_path": {
            "default": "context-{policy_path}",
            "description": "context bundle path. The name must not use template variables",
            "type": "string"
          },
          "discovery_path": {
            "default": "discovery.tgz",
            "description": "discovery bundle path. Template variables can be used in the name",
            "type": "string"
          },
          "endpoint": {
            "description": "AWS endpoint",
            "type": "string"
          },
          "opa_credentials": {
            "$ref": "#/components/schemas/systems.v1.BundleDistributionS3Config.opa_credentials"
          },
          "policy_path": {
            "default": "bundle.tgz",
            "description": "policy bundle path. Template variables can be used in the name",
            "type": "string"
          },
          "region": {
            "description": "AWS region",
            "type": "string"
          },
          "role_arn": {
            "description": "AWS role",
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "context_path",
          "discovery_path",
          "policy_path",
          "region"
        ]
      },
      "systems.v1.BundleDistributionS3Config.opa_credentials": {
        "properties": {
          "environment_credentials": {
            "$ref": "#/components/schemas/systems.v1.BundleDistributionS3Config.opa_credentials.environment_credentials"
          },
          "metadata_credentials": {
            "$ref": "#/components/schemas/systems.v1.BundleDistributionS3Config.opa_credentials.metadata_credentials"
          },
          "web_identity_credentials": {
            "$ref": "#/components/schemas/systems.v1.BundleDistributionS3Config.opa_credentials.web_identity_credentials"
          }
        }
      },
      "systems.v1.BundleDistributionS3Config.opa_credentials.environment_credentials": {
        "type": "object"
      },
      "systems.v1.BundleDistributionS3Config.opa_credentials.metadata_credentials": {
        "properties": {
          "aws_region": {
            "type": "string"
          },
          "iam_role": {
            "type": "string"
          }
        },
        "required": [
          "aws_region"
        ]
      },
      "systems.v1.BundleDistributionS3Config.opa_credentials.web_identity_credentials": {
        "properties": {
          "aws_region": {
            "type": "string"
          },
          "session_name": {
            "type": "string"
          }
        },
        "required": [
          "aws_region",
          "session_name"
        ]
      },
      "systems.v1.BundleDownloadConfig": {
        "properties": {
          "delta_bundles": {
            "default": false,
            "description": "enabled delta bundles on bundle download",
            "type": "boolean"
          }
        }
      },
      "systems.v1.BundleKind": {
        "properties": {
          "digest": {
            "description": "bundle contents digest",
            "type": "string"
          },
          "download_url": {
            "description": "URL to download the bundle",
            "type": "string"
          },
          "size": {
            "description": "size in bytes",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "digest",
          "download_url",
          "size"
        ]
      },
      "systems.v1.BundleRegistryConfig": {
        "properties": {
          "disable_bundle_compatibility_check": {
            "description": "when checked, bundles will be activated regardless of their compatibility with currently running agents",
            "type": "boolean"
          },
          "distribution_s3": {
            "$ref": "#/components/schemas/systems.v1.BundleDistributionS3Config"
          },
          "entrypoints": {
            "description": "extra bundle entry points to use when compiling bundles",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "manual_deployment": {
            "description": "manual deployment mode to prevent automatic deployment of new bundles",
            "type": "boolean"
          },
          "manual_deployment_overrides": {
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "Override of manual deployment mode flag per bundle type",
            "type": "object"
          },
          "max_bundles": {
            "description": "maximum number of all bundles to store",
            "format": "int64",
            "type": "integer"
          },
          "max_deployed_bundles": {
            "description": "maximum number of previously deployed bundles to store",
            "format": "int64",
            "type": "integer"
          },
          "optimization_level": {
            "description": "OPA optimization level to use when building bundles",
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "systems.v1.ClientTLSAuthPlugin": {
        "properties": {
          "cert": {
            "description": "the path to the client certificate to authenticate with",
            "type": "string"
          },
          "private_key": {
            "description": "the path to the private key of the client certificate",
            "type": "string"
          },
          "private_key_passphrase": {
            "description": "the passphrase to use for the private key",
            "type": "string"
          }
        },
        "required": [
          "cert",
          "private_key"
        ]
      },
      "systems.v1.ColumnMapping": {
        "properties": {
          "key": {
            "description": "column key (also the search key)",
            "type": "string"
          },
          "path": {
            "description": "dot-separated decision property path",
            "type": "string"
          },
          "type": {
            "default": "string",
            "description": "column type: one of \"string\", \"boolean\", \"date\", \"integer\", \"float\"",
            "type": "string"
          }
        },
        "required": [
          "key",
          "path"
        ]
      },
      "systems.v1.ComplianceValidation": {
        "properties": {
          "all": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation.all"
            },
            "type": "array"
          },
          "all_count": {
            "format": "int32",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "duration": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/systems.v1.ComplianceValidation.metadata"
          },
          "new": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation.new"
            },
            "type": "array"
          },
          "new_count": {
            "format": "int32",
            "type": "integer"
          },
          "resolved": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation.resolved"
            },
            "type": "array"
          },
          "resolved_count": {
            "format": "int32",
            "type": "integer"
          },
          "revision": {
            "type": "string"
          },
          "scheduled_at": {
            "format": "date-time",
            "type": "string"
          },
          "systems_last_update": {
            "additionalProperties": {
              "$ref": "#/components/schemas/time.Time"
            },
            "type": "object"
          },
          "unchanged": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation.unchanged"
            },
            "type": "array"
          },
          "unchanged_count": {
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "systems.v1.ComplianceValidation.all": {},
      "systems.v1.ComplianceValidation.metadata": {},
      "systems.v1.ComplianceValidation.new": {},
      "systems.v1.ComplianceValidation.resolved": {},
      "systems.v1.ComplianceValidation.unchanged": {},
      "systems.v1.CopyBundleRequest": {
        "properties": {
          "source_system_id": {
            "description": "ID of the system to copy bundle from",
            "type": "string"
          },
          "version": {
            "description": "bundle version in source_system_id system",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "source_system_id",
          "version"
        ]
      },
      "systems.v1.DatasourceConfig": {
        "properties": {
          "category": {
            "description": "datasource category",
            "type": "string"
          },
          "id": {
            "description": "datasource ID",
            "type": "string"
          },
          "optional": {
            "description": "optional datasources can be deleted without being recreated automatically",
            "type": "boolean"
          },
          "status": {
            "$ref": "#/components/schemas/meta.v1.Status"
          }
        },
        "required": [
          "category",
          "id"
        ]
      },
      "systems.v1.DeploymentCommand": {
        "properties": {
          "action": {
            "description": "command text",
            "type": "string"
          },
          "title": {
            "description": "command title",
            "type": "string"
          }
        },
        "required": [
          "action",
          "title"
        ]
      },
      "systems.v1.DeploymentInstruction": {
        "properties": {
          "category": {
            "description": "category/tool name",
            "type": "string"
          },
          "commands": {
            "description": "commands",
            "items": {
              "$ref": "#/components/schemas/systems.v1.DeploymentCommand"
            },
            "type": "array"
          }
        },
        "required": [
          "category",
          "commands"
        ]
      },
      "systems.v1.DeploymentInstructions": {
        "properties": {
          "install": {
            "description": "installation instructions for various tools",
            "items": {
              "$ref": "#/components/schemas/systems.v1.DeploymentInstruction"
            },
            "readOnly": true,
            "type": "array"
          },
          "uninstall": {
            "description": "uninstallation instructions for various tools",
            "items": {
              "$ref": "#/components/schemas/systems.v1.DeploymentInstruction"
            },
            "readOnly": true,
            "type": "array"
          }
        }
      },
      "systems.v1.EnforcementConfig": {
        "properties": {
          "enforced": {
            "description": "true if the policy is enforced",
            "type": "boolean"
          },
          "type": {
            "description": "enforcement type e.g. opa, test, mask",
            "type": "string"
          }
        },
        "required": [
          "enforced",
          "type"
        ]
      },
      "systems.v1.ExternalBundleConfig": {
        "properties": {
          "bundles": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.OpaConfigBundleDeclaration"
            },
            "description": "externally configured bundles, use name of bundle as key",
            "type": "object"
          },
          "services": {
            "description": "externally configured services",
            "items": {
              "$ref": "#/components/schemas/systems.v1.OpaConfigServiceDeclaration"
            },
            "type": "array"
          }
        },
        "required": [
          "services"
        ]
      },
      "systems.v1.GcpMetadataAuthPlugin": {
        "properties": {
          "access_token_path": {
            "description": "the access token metadata path to use",
            "type": "string"
          },
          "audience": {
            "description": "the audience to use when fetching identity tokens",
            "type": "string"
          },
          "endpoint": {
            "description": "the metadata endpoint to use",
            "type": "string"
          },
          "id_token_path": {
            "description": "the identity token metadata path to use",
            "type": "string"
          },
          "scopes": {
            "description": "the set of scopes to use when fetching access token",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "access_token_path",
          "audience",
          "endpoint",
          "id_token_path",
          "scopes"
        ]
      },
      "systems.v1.KeyConfig": {
        "properties": {
          "algorithm": {
            "description": "name of the signing algorithm",
            "type": "string"
          },
          "key": {
            "description": "PEM encoded public key to use for signature verification",
            "type": "string"
          },
          "private_key": {
            "description": "PEM encoded private key to use for signing",
            "type": "string"
          },
          "scope": {
            "description": "scope to use for bundle signature verification",
            "type": "string"
          }
        }
      },
      "systems.v1.MigrationRecord": {
        "properties": {
          "from": {
            "type": "string"
          },
          "initiated_by": {
            "type": "string"
          },
          "initiating_user": {
            "type": "string"
          },
          "migrated_at": {
            "format": "date-time",
            "type": "string"
          },
          "recovered": {
            "type": "boolean"
          },
          "to": {
            "type": "string"
          }
        },
        "required": [
          "from",
          "initiated_by",
          "initiating_user",
          "migrated_at",
          "to"
        ]
      },
      "systems.v1.Module": {
        "properties": {
          "name": {
            "description": "module name",
            "type": "string"
          },
          "placeholder": {
            "default": false,
            "description": "module is a placeholder",
            "readOnly": true,
            "type": "boolean"
          },
          "read_only": {
            "description": "true if module is read-only",
            "type": "boolean"
          },
          "rules": {
            "$ref": "#/components/schemas/policies.v1.RuleCounts"
          }
        },
        "required": [
          "name",
          "read_only"
        ]
      },
      "systems.v1.Oauth2ClientCredentialsAuthPlugin": {
        "properties": {
          "additional_claims": {
            "description": "map of claims to include in the JWT",
            "type": "object"
          },
          "additional_headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "map of additional headers to send to token endpoint at the OAuth2 authorization server",
            "type": "object"
          },
          "additional_parameters": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "map of additional body parameters to send token endpoint at the OAuth2 authorization server",
            "type": "object"
          },
          "client_id": {
            "description": "the client ID to use for authentication",
            "type": "string"
          },
          "client_secret": {
            "description": "the client secret to use for authentication",
            "type": "string"
          },
          "grant_type": {
            "description": "defaults to client_credentials",
            "type": "string"
          },
          "include_jti_claim": {
            "description": "include a uniquely generated jti claim in any issued JWT",
            "type": "boolean"
          },
          "scopes": {
            "description": "optional list of scopes to request for the token",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "signing_key": {
            "description": "reference to private key used for signing the JWT",
            "type": "string"
          },
          "thumbprint": {
            "description": "certificate thumbprint to use for x5t header generation",
            "type": "string"
          },
          "token_url": {
            "description": "URL pointing to the token endpoint at the OAuth2 authorization server",
            "type": "string"
          }
        },
        "required": [
          "additional_claims",
          "client_id",
          "client_secret",
          "grant_type",
          "include_jti_claim",
          "signing_key",
          "thumbprint",
          "token_url"
        ]
      },
      "systems.v1.OpaConfigBundleDeclaration": {
        "properties": {
          "persist": {
            "description": "persist activated bundles to disk",
            "type": "boolean"
          },
          "polling": {
            "$ref": "#/components/schemas/systems.v1.PollingConfig"
          },
          "resource": {
            "description": "resource path to use to download bundle from configured service",
            "type": "string"
          },
          "service": {
            "description": "name of service to use to contact remote server",
            "type": "string"
          },
          "signing": {
            "$ref": "#/components/schemas/systems.v1.VerificationConfig"
          },
          "size_limit_bytes": {
            "description": "size limit for individual files contained in the bundle",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "service"
        ]
      },
      "systems.v1.OpaConfigServiceDeclaration": {
        "properties": {
          "allow_insecure_tls": {
            "description": "allow insecure TLS",
            "type": "boolean"
          },
          "credentials": {
            "$ref": "#/components/schemas/systems.v1.OpaConfigServiceDeclaration.credentials"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "HTTP headers to include in the requests to the service",
            "type": "object"
          },
          "keys": {
            "additionalProperties": {
              "$ref": "#/components/schemas/keys.Config"
            },
            "description": "keys is a dictionary mapping the key name to the actual key and optionally the algorithm and scope.",
            "type": "object"
          },
          "name": {
            "description": "unique name for each service, referred to by plugins",
            "type": "string"
          },
          "response_header_timeout_seconds": {
            "description": "amount of time to wait for a server's response headers after fully writing the request",
            "format": "int64",
            "type": "integer"
          },
          "tls": {
            "$ref": "#/components/schemas/systems.v1.ServerTLSConfig"
          },
          "type": {
            "description": "optional parameter that allows to use an “OCI” service type",
            "type": "string"
          },
          "url": {
            "description": "base URL to contact the service with",
            "type": "string"
          }
        },
        "required": [
          "name",
          "url"
        ]
      },
      "systems.v1.OpaConfigServiceDeclaration.credentials": {
        "properties": {
          "azure_managed_identity": {
            "$ref": "#/components/schemas/systems.v1.AzureManagedIdentitiesAuthPlugin"
          },
          "bearer": {
            "$ref": "#/components/schemas/systems.v1.BearerAuthPlugin"
          },
          "client_tls": {
            "$ref": "#/components/schemas/systems.v1.ClientTLSAuthPlugin"
          },
          "gcp_metadata": {
            "$ref": "#/components/schemas/systems.v1.GcpMetadataAuthPlugin"
          },
          "oauth2": {
            "$ref": "#/components/schemas/systems.v1.Oauth2ClientCredentialsAuthPlugin"
          },
          "plugin": {
            "description": "authenticate using a custom plugin",
            "type": "string"
          },
          "s3_signing": {
            "$ref": "#/components/schemas/systems.v1.AwsSigningAuthPlugin"
          }
        }
      },
      "systems.v1.PolicyConfig": {
        "properties": {
          "created": {
            "description": "policy on when to (re)generate the policy",
            "type": "string"
          },
          "enforcement": {
            "$ref": "#/components/schemas/systems.v1.EnforcementConfig"
          },
          "id": {
            "description": "policy ID (path)",
            "type": "string"
          },
          "modules": {
            "description": "rego modules policy consists of",
            "items": {
              "$ref": "#/components/schemas/systems.v1.Module"
            },
            "type": "array"
          },
          "rules": {
            "$ref": "#/components/schemas/policies.v1.RuleCounts"
          },
          "type": {
            "description": "policy type e.g. validating/rules",
            "type": "string"
          }
        },
        "required": [
          "enforcement",
          "id",
          "type"
        ]
      },
      "systems.v1.PollingConfig": {
        "properties": {
          "long_polling_timeout_seconds": {
            "description": "maximum amount of time the server should wait before issuing a timeout if there’s no update available",
            "format": "int64",
            "type": "integer"
          },
          "max_delay_seconds": {
            "description": "maximum amount of time to wait between bundle downloads",
            "format": "int64",
            "type": "integer"
          },
          "min_delay_seconds": {
            "description": "minimum amount of time to wait between bundle downloads",
            "format": "int64",
            "type": "integer"
          }
        }
      },
      "systems.v1.PostBundleResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.Bundle"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.ReasonMapping": {
        "properties": {
          "path": {
            "description": "dot-separated decision property path",
            "type": "string"
          }
        },
        "required": [
          "path"
        ]
      },
      "systems.v1.RuleDecisionMappings": {
        "properties": {
          "allowed": {
            "$ref": "#/components/schemas/systems.v1.AllowedMapping"
          },
          "columns": {
            "description": "decision mappings for additional columns",
            "items": {
              "$ref": "#/components/schemas/systems.v1.ColumnMapping"
            },
            "type": "array"
          },
          "reason": {
            "$ref": "#/components/schemas/systems.v1.ReasonMapping"
          }
        }
      },
      "systems.v1.RuleParameters": {
        "type": "object"
      },
      "systems.v1.ServerTLSConfig": {
        "properties": {
          "ca_cert": {
            "description": "the path to the root CA certificate. If not provided, this defaults to TLS using the host’s root CA set",
            "type": "string"
          },
          "system_ca_required": {
            "description": "require system certificate appended with root CA certificate",
            "type": "boolean"
          }
        }
      },
      "systems.v1.SortField": {
        "properties": {
          "descending": {
            "description": "true to sort in descending order",
            "type": "boolean"
          },
          "field": {
            "description": "dot.path field expression",
            "type": "string"
          }
        },
        "required": [
          "field"
        ]
      },
      "systems.v1.SuggestedRules": {
        "properties": {
          "stateful": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.RuleParameters"
            },
            "type": "object"
          },
          "stateless": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.RuleParameters"
            },
            "type": "object"
          }
        },
        "required": [
          "stateful",
          "stateless"
        ]
      },
      "systems.v1.SystemConfig": {
        "properties": {
          "authz": {
            "$ref": "#/components/schemas/systems.v1.AuthzConfig"
          },
          "bundle_download": {
            "$ref": "#/components/schemas/systems.v1.BundleDownloadConfig"
          },
          "bundle_registry": {
            "$ref": "#/components/schemas/systems.v1.BundleRegistryConfig"
          },
          "context_bundle_data_only": {
            "description": "only put data in the context bundle",
            "type": "boolean"
          },
          "context_bundle_roots": {
            "description": "list of path prefixes for policies/datasources that go into the second (context) bundle",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "datasources": {
            "description": "datasources created for the system",
            "items": {
              "$ref": "#/components/schemas/systems.v1.DatasourceConfig"
            },
            "readOnly": true,
            "type": "array"
          },
          "decision_mappings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.RuleDecisionMappings"
            },
            "description": "location of key attributes and additional columns in the decisions grouped by policy entry point path",
            "type": "object"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "deployment_parameters": {
            "$ref": "#/components/schemas/systems.v1.SystemDeploymentParameters"
          },
          "description": {
            "description": "description for the system",
            "type": "string"
          },
          "error_setting": {
            "description": "error/warning configuration: one of \"all\", \"errors\", \"none\"",
            "type": "string"
          },
          "errors": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.AgentErrors"
            },
            "description": "current deployment errors",
            "readOnly": true,
            "type": "object"
          },
          "external_bundles": {
            "$ref": "#/components/schemas/systems.v1.ExternalBundleConfig"
          },
          "external_id": {
            "description": "optional parameter to map Styra DAS system ID to external IDs used by a customer. (mapping can be retrieved with TranslateExternalIds operation)",
            "type": "string"
          },
          "filter_stacks": {
            "description": "when set, stacks that are not linked to this system will be filtered out of its bundles",
            "type": "boolean"
          },
          "id": {
            "description": "system ID",
            "type": "string"
          },
          "info": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/meta.v1.Status"
              },
              "type": "array"
            },
            "description": "current system info messages",
            "readOnly": true,
            "type": "object"
          },
          "install": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.SystemConfig.install"
            },
            "description": "installation instructions by installation method and asset type (deprecated)",
            "readOnly": true,
            "type": "object"
          },
          "kafka_topic": {
            "description": "optional parameter to specify the Kafka topic where the decision logs for this system should be published if exported through the workspace level configuration (ignored if Kafka is not configured for the workspace for decision export)",
            "type": "string"
          },
          "matching_stacks": {
            "description": "IDs of stacks matching the system",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "migration_history": {
            "description": "A history of any migrations performed on this system",
            "items": {
              "$ref": "#/components/schemas/systems.v1.MigrationRecord"
            },
            "readOnly": true,
            "type": "array"
          },
          "minimum_opa_version": {
            "description": "minimum running OPA version for the systems",
            "type": "string"
          },
          "mock_opa_enabled": {
            "description": "enable mock OPAs for this system",
            "type": "boolean"
          },
          "name": {
            "description": "system name",
            "type": "string"
          },
          "policies": {
            "description": "policies created for the system",
            "items": {
              "$ref": "#/components/schemas/systems.v1.PolicyConfig"
            },
            "type": "array"
          },
          "read_only": {
            "default": false,
            "description": "prevents users from modifying policies using Styra UIs",
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          },
          "status": {
            "description": "system status",
            "type": "string"
          },
          "tokens": {
            "description": "tokens created for the system",
            "items": {
              "$ref": "#/components/schemas/tokens.v1.Token"
            },
            "readOnly": true,
            "type": "array"
          },
          "type": {
            "description": "system type e.g. kubernetes",
            "type": "string"
          },
          "type_parameters": {
            "description": "system type parameter values (for template.* types)",
            "type": "object"
          },
          "uninstall": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "uninstallation instructions by installation method (deprecated)",
            "readOnly": true,
            "type": "object"
          },
          "warnings": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/meta.v1.Status"
              },
              "type": "array"
            },
            "description": "current deployment warnings",
            "readOnly": true,
            "type": "object"
          }
        },
        "required": [
          "authz",
          "id",
          "metadata",
          "name",
          "policies",
          "status",
          "type"
        ]
      },
      "systems.v1.SystemConfig.install": {
        "additionalProperties": {
          "type": "string"
        },
        "type": "object"
      },
      "systems.v1.SystemDeploymentParameters": {
        "properties": {
          "deny_on_opa_fail": {
            "default": false,
            "description": "true to fail close",
            "type": "boolean"
          },
          "discovery": {
            "description": "discovery config settings for OPAs linked to the system. (in case of conflict with system-type defined setting, this value takes precedence)",
            "type": "object"
          },
          "extra": {
            "description": "extra deployment settings",
            "type": "object"
          },
          "http_proxy": {
            "description": "HTTP proxy URL",
            "type": "string"
          },
          "https_proxy": {
            "description": "HTTPS proxy URL",
            "type": "string"
          },
          "kubernetes_version": {
            "description": "minimum Kubernetes version expected (where applicable)",
            "type": "string"
          },
          "mutating_webhook_name": {
            "description": "Custom name for mutating webhook (useful for changing webhook order of execution)",
            "type": "string"
          },
          "namespace": {
            "description": "Kubernetes namespace the system is deployed to",
            "type": "string"
          },
          "no_proxy": {
            "description": "URLs that should be excluded from proxying",
            "type": "string"
          },
          "timeout_seconds": {
            "description": "Kubernetes webhook timeout (where applicable)",
            "format": "int32",
            "type": "integer"
          },
          "trusted_ca_certs": {
            "description": "trusted CA certificates",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trusted_container_registry": {
            "description": "trusted container registry",
            "type": "string"
          }
        }
      },
      "systems.v1.SystemsComplianceRequest": {
        "properties": {
          "drafts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "draft policies to be used for 'new' violations computation (path => rego)",
            "type": "object"
          },
          "extended": {
            "description": "run extended compliance validation that is specific for the system/stack type",
            "type": "boolean"
          },
          "filter": {
            "description": "filter violations with this selector (dot.path => value)",
            "type": "object"
          },
          "group_by": {
            "description": "group results by dot.path values (list of group levels with list of fields at each level)",
            "items": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "array"
          },
          "limit": {
            "description": "maximum number of violations to return per monitor",
            "format": "int32",
            "type": "integer"
          },
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocks"
          },
          "mode": {
            "default": "delta",
            "description": "validation mode. One of (delta, all, delta-count, all-count)",
            "type": "string"
          },
          "policy_type": {
            "description": "policy type to narrow the monitor policy search (e.g. validating, mutating). Default (empty string or missing) is to run all monitoring policies",
            "type": "string"
          },
          "sort": {
            "description": "list of fields to sort by",
            "items": {
              "$ref": "#/components/schemas/systems.v1.SortField"
            },
            "type": "array"
          }
        }
      },
      "systems.v1.SystemsComplianceResponse": {
        "properties": {
          "mocks": {
            "$ref": "#/components/schemas/data.v1.BuiltinMocksResponse"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.ComplianceValidation"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "systems.v1.SystemsGetAgentsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.AgentConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetBundleDeployResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.BundleDeployStatus"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetBundleDetailsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.BundleDetails"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetBundlesResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.Bundle"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetDefaultPoliciesResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetDefaultPolicyResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "type": "string"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetInstructionsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.DeploymentInstructions"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.SystemConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsListResponse": {
        "properties": {
          "offset": {
            "format": "int32",
            "type": "integer"
          },
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.SystemConfig"
            },
            "type": "array"
          }
        },
        "required": [
          "offset",
          "result"
        ]
      },
      "systems.v1.SystemsMigrationRequest": {
        "properties": {
          "type": {
            "description": "The system type ID to migrate the current system to",
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "systems.v1.SystemsPostRequest": {
        "properties": {
          "bundle_download": {
            "$ref": "#/components/schemas/systems.v1.BundleDownloadConfig"
          },
          "bundle_registry": {
            "$ref": "#/components/schemas/systems.v1.BundleRegistryConfig"
          },
          "context_bundle_data_only": {
            "description": "only put data in the context bundle",
            "type": "boolean"
          },
          "context_bundle_roots": {
            "description": "list of path prefixes for policies/datasources that go into the second (context) bundle",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decision_mappings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.RuleDecisionMappings"
            },
            "description": "location of key attributes and additional columns in the decisions grouped by policy entry point path",
            "type": "object"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "deployment_parameters": {
            "$ref": "#/components/schemas/systems.v1.SystemDeploymentParameters"
          },
          "description": {
            "description": "description for the system",
            "type": "string"
          },
          "error_setting": {
            "description": "error/warning configuration: one of \"all\", \"errors\", \"none\"",
            "type": "string"
          },
          "external_bundles": {
            "$ref": "#/components/schemas/systems.v1.ExternalBundleConfig"
          },
          "external_id": {
            "description": "optional parameter to map Styra DAS system ID to external IDs used by a customer. (mapping can be retrieved with TranslateExternalIds operation)",
            "type": "string"
          },
          "filter_stacks": {
            "description": "when set, stacks that are not linked to this system will be filtered out of its bundles",
            "type": "boolean"
          },
          "kafka_topic": {
            "description": "optional parameter to specify the Kafka topic where the decision logs for this system should be published if exported through the workspace level configuration (ignored if Kafka is not configured for the workspace for decision export)",
            "type": "string"
          },
          "mock_opa_enabled": {
            "description": "enable mock OPAs for this system",
            "type": "boolean"
          },
          "name": {
            "description": "system name",
            "type": "string"
          },
          "read_only": {
            "default": false,
            "description": "prevents users from modifying policies using Styra UIs",
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          },
          "type": {
            "description": "system type e.g. kubernetes",
            "type": "string"
          },
          "type_parameters": {
            "description": "system type parameter values (for template.* types)",
            "type": "object"
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "systems.v1.SystemsPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.SystemConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsPutBundleCompileRequest": {
        "properties": {
          "bundle_id": {
            "description": "optional bundle ID: 'policy' or 'context'",
            "type": "string"
          }
        }
      },
      "systems.v1.SystemsPutBundleCompileResponse": {
        "properties": {
          "result": {
            "$ref": "#/components/schemas/systems.v1.BundleDetails"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsPutBundleDeployRequest": {
        "properties": {
          "force": {
            "description": "activate even if bundle is not compatible with running agents",
            "type": "boolean"
          },
          "primary": {
            "$ref": "#/components/schemas/systems.v1.BundleActivation"
          }
        },
        "required": [
          "force",
          "primary"
        ]
      },
      "systems.v1.SystemsPutBundleDeployResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "systems.v1.SystemsPutRequest": {
        "properties": {
          "bundle_download": {
            "$ref": "#/components/schemas/systems.v1.BundleDownloadConfig"
          },
          "bundle_registry": {
            "$ref": "#/components/schemas/systems.v1.BundleRegistryConfig"
          },
          "context_bundle_data_only": {
            "description": "only put data in the context bundle",
            "type": "boolean"
          },
          "context_bundle_roots": {
            "description": "list of path prefixes for policies/datasources that go into the second (context) bundle",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "decision_mappings": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.RuleDecisionMappings"
            },
            "description": "location of key attributes and additional columns in the decisions grouped by policy entry point path",
            "type": "object"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "deployment_parameters": {
            "$ref": "#/components/schemas/systems.v1.SystemDeploymentParameters"
          },
          "description": {
            "description": "description for the system",
            "type": "string"
          },
          "error_setting": {
            "description": "error/warning configuration: one of \"all\", \"errors\", \"none\"",
            "type": "string"
          },
          "external_bundles": {
            "$ref": "#/components/schemas/systems.v1.ExternalBundleConfig"
          },
          "external_id": {
            "description": "optional parameter to map Styra DAS system ID to external IDs used by a customer. (mapping can be retrieved with TranslateExternalIds operation)",
            "type": "string"
          },
          "filter_stacks": {
            "description": "when set, stacks that are not linked to this system will be filtered out of its bundles",
            "type": "boolean"
          },
          "kafka_topic": {
            "description": "optional parameter to specify the Kafka topic where the decision logs for this system should be published if exported through the workspace level configuration (ignored if Kafka is not configured for the workspace for decision export)",
            "type": "string"
          },
          "mock_opa_enabled": {
            "description": "enable mock OPAs for this system",
            "type": "boolean"
          },
          "name": {
            "description": "system name",
            "type": "string"
          },
          "read_only": {
            "default": false,
            "description": "prevents users from modifying policies using Styra UIs",
            "type": "boolean"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          },
          "type": {
            "description": "system type e.g. kubernetes",
            "type": "string"
          },
          "type_parameters": {
            "description": "system type parameter values (for template.* types)",
            "type": "object"
          }
        },
        "required": [
          "name",
          "type"
        ]
      },
      "systems.v1.SystemsPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.SystemConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsSuggestedRulesResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/systems.v1.SuggestedRules"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsTestsRequest": {
        "properties": {
          "drafts": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "draft policies to be used for 'new' violations computation (path => rego)",
            "type": "object"
          },
          "mode": {
            "default": "delta",
            "description": "validation mode. One of (delta, all, delta-count, all-count)",
            "type": "string"
          },
          "policy_type": {
            "description": "policy type to narrow the monitor policy search (e.g. validating, mutating). Default (empty string or missing) is to run all monitoring policies",
            "type": "string"
          }
        }
      },
      "systems.v1.SystemsTestsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.UnitTestsValidation"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.SystemsTranslateExternalIdsRequest": {
        "properties": {
          "external_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "external_ids"
        ]
      },
      "systems.v1.SystemsTranslateExternalIdsResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object"
          }
        },
        "required": [
          "result"
        ]
      },
      "systems.v1.TesterResult": {
        "properties": {
          "duration": {
            "format": "int64",
            "type": "integer"
          },
          "error": {
            "type": "string"
          },
          "fail": {
            "type": "boolean"
          },
          "failed_at": {
            "type": "object"
          },
          "location": {
            "$ref": "#/components/schemas/location.Location"
          },
          "name": {
            "type": "string"
          },
          "package": {
            "type": "string"
          },
          "presence_changed": {
            "type": "boolean"
          }
        },
        "required": [
          "duration",
          "fail",
          "location",
          "name",
          "package"
        ]
      },
      "systems.v1.UnitTestsValidation": {
        "properties": {
          "all": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.TesterResult"
            },
            "type": "array"
          },
          "all_count": {
            "format": "int32",
            "type": "integer"
          },
          "all_errors_count": {
            "format": "int32",
            "type": "integer"
          },
          "all_failed_count": {
            "format": "int32",
            "type": "integer"
          },
          "new": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.TesterResult"
            },
            "type": "array"
          },
          "new_count": {
            "format": "int32",
            "type": "integer"
          },
          "new_errors_count": {
            "format": "int32",
            "type": "integer"
          },
          "new_failed_count": {
            "format": "int32",
            "type": "integer"
          },
          "resolved": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.TesterResult"
            },
            "type": "array"
          },
          "resolved_count": {
            "format": "int32",
            "type": "integer"
          },
          "resolved_errors_count": {
            "format": "int32",
            "type": "integer"
          },
          "resolved_failed_count": {
            "format": "int32",
            "type": "integer"
          },
          "unchanged": {
            "items": {
              "$ref": "#/components/schemas/systems.v1.TesterResult"
            },
            "type": "array"
          },
          "unchanged_count": {
            "format": "int32",
            "type": "integer"
          },
          "unchanged_errors_count": {
            "format": "int32",
            "type": "integer"
          },
          "unchanged_failed_count": {
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "systems.v1.V1RoleBindingConfig": {
        "properties": {
          "id": {
            "description": "role binding ID",
            "type": "string"
          },
          "role_name": {
            "description": "role name",
            "type": "string"
          }
        },
        "required": [
          "id",
          "role_name"
        ]
      },
      "systems.v1.VerificationConfig": {
        "properties": {
          "exclude_files": {
            "description": "files in the bundle to exclude during verification",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "keyid": {
            "description": "name of the key to use for bundle signature verification",
            "type": "string"
          },
          "public_keys": {
            "additionalProperties": {
              "$ref": "#/components/schemas/systems.v1.KeyConfig"
            },
            "description": "information about necessary public signing keys",
            "type": "object"
          },
          "scope": {
            "description": "scope to use for bundle signature verification",
            "type": "string"
          }
        }
      },
      "time.Location": {
        "properties": {
          "cacheEnd": {
            "format": "int64",
            "type": "integer"
          },
          "cacheStart": {
            "format": "int64",
            "type": "integer"
          },
          "cacheZone": {
            "$ref": "#/components/schemas/time.zone"
          },
          "extend": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "tx": {
            "items": {
              "$ref": "#/components/schemas/time.zoneTrans"
            },
            "type": "array"
          },
          "zone": {
            "items": {
              "$ref": "#/components/schemas/time.zone"
            },
            "type": "array"
          }
        },
        "required": [
          "cacheEnd",
          "cacheStart",
          "cacheZone",
          "extend",
          "name",
          "tx",
          "zone"
        ]
      },
      "time.Time": {
        "properties": {
          "ext": {
            "format": "int64",
            "type": "integer"
          },
          "loc": {
            "$ref": "#/components/schemas/time.Location"
          },
          "wall": {
            "format": "integer",
            "type": "integer"
          }
        },
        "required": [
          "ext",
          "loc",
          "wall"
        ]
      },
      "time.zone": {
        "properties": {
          "isDST": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "offset": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "isDST",
          "name",
          "offset"
        ]
      },
      "time.zoneTrans": {
        "properties": {
          "index": {
            "format": "byte",
            "type": "integer"
          },
          "isstd": {
            "type": "boolean"
          },
          "isutc": {
            "type": "boolean"
          },
          "when": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "index",
          "isstd",
          "isutc",
          "when"
        ]
      },
      "timeseries.v1.Aggregations": {
        "properties": {
          "decisions": {
            "$ref": "#/components/schemas/timeseries.v1.Decisions"
          },
          "nodes": {
            "$ref": "#/components/schemas/timeseries.v1.Nodes"
          }
        },
        "required": [
          "decisions",
          "nodes"
        ]
      },
      "timeseries.v1.Decisions": {
        "properties": {
          "advice": {
            "format": "int64",
            "type": "integer"
          },
          "allow": {
            "format": "int64",
            "type": "integer"
          },
          "decisions": {
            "format": "int64",
            "type": "integer"
          },
          "deny": {
            "format": "int64",
            "type": "integer"
          },
          "error": {
            "format": "int64",
            "type": "integer"
          },
          "unknown": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "advice",
          "allow",
          "decisions",
          "deny",
          "error",
          "unknown"
        ]
      },
      "timeseries.v1.Nodes": {
        "properties": {
          "node_count": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "node_count"
        ]
      },
      "timeseries.v1.TimeSeriesData": {
        "properties": {
          "date": {
            "type": "string"
          },
          "value": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "date",
          "value"
        ]
      },
      "timeseries.v1.TimeSeriesPostRequest": {
        "properties": {
          "data_kind": {
            "type": "string"
          },
          "end_time": {
            "format": "date-time",
            "type": "string"
          },
          "policy": {
            "type": "string"
          },
          "resolution": {
            "description": "resolution must be a multiple of minutes, this can be represented as a string or an integer e.g. '1m' or '60000000000'. Except when calling /violation then it must be a multiple of hours, e.g. '60m' or '3600000000000'",
            "format": "int64",
            "type": "integer"
          },
          "stack": {
            "type": "string"
          },
          "start_time": {
            "format": "date-time",
            "type": "string"
          },
          "system": {
            "type": "string"
          }
        },
        "required": [
          "data_kind",
          "end_time",
          "policy",
          "resolution",
          "stack",
          "start_time",
          "system"
        ]
      },
      "timeseries.v1.TimeSeriesPostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/timeseries.v1.TimeSeriesResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "timeseries.v1.TimeSeriesResult": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/timeseries.v1.TimeSeriesData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "timeseries.v1.TimeSeriesUsageData": {
        "properties": {
          "date": {
            "type": "string"
          },
          "decision_rate": {
            "format": "int64",
            "type": "integer"
          },
          "node_count": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "date",
          "decision_rate",
          "node_count"
        ]
      },
      "timeseries.v1.TimeSeriesUsagePostRequest": {
        "properties": {
          "end_time": {
            "format": "date-time",
            "type": "string"
          },
          "latest": {
            "type": "boolean"
          },
          "resolution": {
            "format": "int64",
            "type": "integer"
          },
          "start_time": {
            "format": "date-time",
            "type": "string"
          },
          "system": {
            "type": "string"
          }
        },
        "required": [
          "end_time",
          "latest",
          "resolution",
          "start_time",
          "system"
        ]
      },
      "timeseries.v1.TimeSeriesUsagePostResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsageResult"
          }
        },
        "required": [
          "result"
        ]
      },
      "timeseries.v1.TimeSeriesUsageResult": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsageData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "timeseries.v1.TimeSeriesYearlyReportData": {
        "properties": {
          "aggregations": {
            "$ref": "#/components/schemas/timeseries.v1.Aggregations"
          },
          "month": {
            "format": "int32",
            "type": "integer"
          },
          "year": {
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "aggregations",
          "month",
          "year"
        ]
      },
      "timeseries.v1.TimeSeriesYearlyReportResult": {
        "properties": {
          "data": {
            "items": {
              "$ref": "#/components/schemas/timeseries.v1.TimeSeriesYearlyReportData"
            },
            "type": "array"
          }
        },
        "required": [
          "data"
        ]
      },
      "tokens.v1.Token": {
        "properties": {
          "allow_path_patterns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "expires": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "token": {
            "type": "string"
          },
          "ttl": {
            "type": "string"
          },
          "uses": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "allow_path_patterns",
          "description",
          "id",
          "metadata",
          "ttl"
        ]
      },
      "tokens.v1.TokensDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "tokens.v1.TokensGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/tokens.v1.Token"
          }
        }
      },
      "tokens.v1.TokensListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/tokens.v1.Token"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "tokens.v1.TokensPutRequest": {
        "properties": {
          "allow_path_patterns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": {
            "type": "string"
          },
          "regenerate": {
            "type": "boolean"
          },
          "ttl": {
            "type": "string"
          }
        },
        "required": [
          "allow_path_patterns",
          "description",
          "regenerate"
        ]
      },
      "tokens.v1.TokensPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "type": "string"
          }
        }
      },
      "users.v1.ResourceRole": {
        "properties": {
          "resource_id": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "role_name": {
            "type": "string"
          }
        },
        "required": [
          "resource_id",
          "resource_type",
          "role_name"
        ]
      },
      "users.v1.User": {
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "type": "string"
          },
          "resource_roles": {
            "items": {
              "$ref": "#/components/schemas/users.v1.ResourceRole"
            },
            "type": "array"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "enabled",
          "id"
        ]
      },
      "users.v1.UsersDeleteResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "users.v1.UsersGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/users.v1.User"
          }
        },
        "required": [
          "result"
        ]
      },
      "users.v1.UsersListResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "items": {
              "$ref": "#/components/schemas/users.v1.User"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "users.v1.UsersPutRequest": {
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "old_password": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "enabled"
        ]
      },
      "users.v1.UsersPutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "workspace.v1.ActivityExporterConfig": {
        "properties": {
          "interval": {
            "default": "5m",
            "description": "S3 exporter interval: range [30s,1h]",
            "type": "string"
          },
          "kafka": {
            "$ref": "#/components/schemas/workspace.v1.KafkaConfig"
          },
          "s3_activity": {
            "$ref": "#/components/schemas/workspace.v1.S3Config"
          }
        }
      },
      "workspace.v1.DasCallerIdConfigResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/workspace.v1.TrustRoleWithARN"
          }
        },
        "required": [
          "result"
        ]
      },
      "workspace.v1.DecisionExporterConfig": {
        "properties": {
          "interval": {
            "default": "30s",
            "description": "S3 exporter interval: range [30s,1h]",
            "type": "string"
          },
          "kafka": {
            "$ref": "#/components/schemas/workspace.v1.KafkaConfig"
          },
          "s3_decisions": {
            "$ref": "#/components/schemas/workspace.v1.S3DecisionConfig"
          }
        }
      },
      "workspace.v1.GetRegionResponse": {
        "properties": {
          "result": {
            "items": {
              "$ref": "#/components/schemas/workspace.v1.RegionFF"
            },
            "type": "array"
          }
        },
        "required": [
          "result"
        ]
      },
      "workspace.v1.GithubConfiguration": {
        "properties": {
          "organizations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "organizations"
        ]
      },
      "workspace.v1.KafkaClientCredentials": {
        "properties": {
          "client_id": {
            "description": "The client ID/secret to use in the client credentials flow, stored in v1/secrets/${client_id}",
            "type": "string"
          },
          "scopes": {
            "description": "The space delimited scopes to using when making the OIDC token request",
            "type": "string"
          },
          "token_endpoint": {
            "description": "The standard oAuth token for completing the client credentials flow",
            "type": "string"
          }
        },
        "required": [
          "client_id",
          "scopes",
          "token_endpoint"
        ]
      },
      "workspace.v1.KafkaConfig": {
        "properties": {
          "authentication": {
            "description": "Kafka authentication mechanism: OPEN, PLAINTEXT, SASL, TLS",
            "type": "string"
          },
          "brokers": {
            "description": "Kafka brokers",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "compression": {
            "description": "Compression mechanism: GZIP, SNAPPY, LZ4, ZSTD",
            "type": "string"
          },
          "idempotent": {
            "description": "Enable Kafka idempotent exactly once reliability semantics",
            "type": "boolean"
          },
          "max_message_size": {
            "default": 1000000,
            "description": "Max message size",
            "format": "int32",
            "type": "integer"
          },
          "max_retries": {
            "default": 3,
            "description": "Max send retries",
            "format": "int32",
            "type": "integer"
          },
          "plain": {
            "$ref": "#/components/schemas/workspace.v1.KafkaPlain"
          },
          "required_acks": {
            "description": "Required acks: WaitForLocal, WaitForAll replica ack(s)",
            "type": "string"
          },
          "sasl": {
            "$ref": "#/components/schemas/workspace.v1.KafkaSasl"
          },
          "timeout": {
            "default": "10s",
            "description": "Message timeout duration",
            "type": "string"
          },
          "tls": {
            "$ref": "#/components/schemas/workspace.v1.KafkaTls"
          },
          "topic": {
            "description": "Kafka topic",
            "type": "string"
          },
          "version": {
            "description": "Kafka version: e.g. 2.0.0",
            "type": "string"
          }
        },
        "required": [
          "authentication",
          "brokers",
          "required_acks",
          "topic"
        ]
      },
      "workspace.v1.KafkaOAuth": {
        "properties": {
          "client_credentials": {
            "$ref": "#/components/schemas/workspace.v1.KafkaClientCredentials"
          },
          "token_provider": {
            "description": "The type of token provider to use: Client-Credentials",
            "type": "string"
          },
          "user_managed": {
            "$ref": "#/components/schemas/workspace.v1.KafkaUserManaged"
          }
        },
        "required": [
          "token_provider"
        ]
      },
      "workspace.v1.KafkaPlain": {
        "properties": {
          "user": {
            "description": "Authenticated Username/Password, stored in /v1/secrets/${user}",
            "type": "string"
          }
        }
      },
      "workspace.v1.KafkaSasl": {
        "properties": {
          "mechanism": {
            "description": "SASL mechanism: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER",
            "type": "string"
          },
          "oauth": {
            "$ref": "#/components/schemas/workspace.v1.KafkaOAuth"
          },
          "plain": {
            "$ref": "#/components/schemas/workspace.v1.KafkaPlain"
          },
          "version": {
            "default": 1,
            "description": "SASL version defaults to 1 (set to 0 for Azure Event Hub)",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "mechanism"
        ]
      },
      "workspace.v1.KafkaTls": {
        "properties": {
          "client_cert": {
            "description": "client public/private certificate PEM, stored in /v1/secrets/${client_cert}",
            "type": "string"
          },
          "insecure_skip_verify": {
            "description": "Skip server certificate chain and host verification",
            "type": "boolean"
          },
          "rootca": {
            "description": "Trusted Root CA(s) PEM",
            "type": "string"
          }
        }
      },
      "workspace.v1.KafkaUserManaged": {
        "properties": {
          "token": {
            "description": "The auth token to use as the bearer token when making Kafka requests",
            "type": "string"
          }
        },
        "required": [
          "token"
        ]
      },
      "workspace.v1.KafkaVerifyResponse": {
        "properties": {
          "kafka_code": {
            "type": "string"
          },
          "kafka_message": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        },
        "required": [
          "kafka_code",
          "kafka_message"
        ]
      },
      "workspace.v1.MetricsExporterConfig": {
        "properties": {
          "targets": {
            "items": {
              "$ref": "#/components/schemas/workspace.v1.MetricsExporterTarget"
            },
            "type": "array"
          }
        },
        "required": [
          "targets"
        ]
      },
      "workspace.v1.MetricsExporterTarget": {
        "properties": {
          "interval": {
            "default": 60,
            "description": "Metrics polling interval range [30,3600] (seconds)",
            "format": "int32",
            "type": "integer"
          },
          "plugin": {
            "description": "Metrics output plugin name [datadog|signalfx]",
            "type": "string"
          },
          "realm": {
            "description": "Plugin realm",
            "type": "string"
          },
          "token_id": {
            "description": "Plugin bearer token reference id to secret stored in /v1/secrets/${token_id}",
            "type": "string"
          },
          "url": {
            "description": "Plugin URL",
            "type": "string"
          }
        },
        "required": [
          "plugin",
          "token_id"
        ]
      },
      "workspace.v1.Principal": {
        "properties": {
          "aws": {
            "type": "string"
          }
        },
        "required": [
          "aws"
        ]
      },
      "workspace.v1.RegionFF": {
        "properties": {
          "description": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "title",
          "value"
        ]
      },
      "workspace.v1.RotateKeyRequest": {},
      "workspace.v1.RotateKeyResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "workspace.v1.S3Config": {
        "properties": {
          "access_keys": {
            "description": "Access key ID and secret access key are stored at /v1/secrets/${access_keys}",
            "type": "string"
          },
          "endpoint": {
            "description": "Custom endpoint or S3 compatible system endpoint (ie: https://storage.googleapis.com)",
            "type": "string"
          },
          "region": {
            "description": "S3 Region (ie: us-east-1 or auto)",
            "type": "string"
          },
          "role_arn": {
            "description": "S3 RoleARN to assume access, as an alternative to access keys",
            "type": "string"
          },
          "url": {
            "description": "S3 Bucket URL (ie: s3://styra-storage or gs://styra-storage/folder)",
            "type": "string"
          }
        },
        "required": [
          "region",
          "url"
        ]
      },
      "workspace.v1.S3ConfigGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          }
        },
        "required": [
          "result"
        ]
      },
      "workspace.v1.S3ConfigPutRequest": {
        "properties": {
          "interval": {
            "default": "30s",
            "description": "S3 exporter interval: range [30s,1h]",
            "type": "string"
          },
          "kafka": {
            "$ref": "#/components/schemas/workspace.v1.KafkaConfig"
          },
          "s3_decisions": {
            "$ref": "#/components/schemas/workspace.v1.S3DecisionConfig"
          }
        }
      },
      "workspace.v1.S3DecisionConfig": {
        "properties": {
          "access_keys": {
            "description": "Access key ID and secret access key are stored at /v1/secrets/${access_keys}",
            "type": "string"
          },
          "decision_format": {
            "description": "Output format of the decisions: 'extended' for decisions with computed columns, any other value for original OPA decisions",
            "type": "string"
          },
          "endpoint": {
            "description": "Custom endpoint or S3 compatible system endpoint (ie: https://storage.googleapis.com)",
            "type": "string"
          },
          "file_format": {
            "description": "File format. One of 'json', 'ndjson', 'json.gz' (default), 'ndjson.gz', 'json.zst', 'ndjson.zst'",
            "type": "string"
          },
          "region": {
            "description": "S3 Region (ie: us-east-1 or auto)",
            "type": "string"
          },
          "role_arn": {
            "description": "S3 RoleARN to assume access, as an alternative to access keys",
            "type": "string"
          },
          "url": {
            "description": "S3 Bucket URL (ie: s3://styra-storage or gs://styra-storage/folder)",
            "type": "string"
          }
        },
        "required": [
          "region",
          "url"
        ]
      },
      "workspace.v1.S3VerifyResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "s3_code": {
            "type": "string"
          },
          "s3_message": {
            "type": "string"
          }
        },
        "required": [
          "s3_code",
          "s3_message"
        ]
      },
      "workspace.v1.Statement": {
        "properties": {
          "Action": {
            "default": "sts:AssumeRole",
            "type": "string"
          },
          "Effect": {
            "default": "Allow",
            "type": "string"
          },
          "Principal": {
            "$ref": "#/components/schemas/workspace.v1.Principal"
          }
        },
        "required": [
          "Action",
          "Effect",
          "Principal"
        ]
      },
      "workspace.v1.Status": {
        "properties": {
          "authz_migration": {
            "type": "string"
          }
        },
        "required": [
          "authz_migration"
        ]
      },
      "workspace.v1.TrustRole": {
        "properties": {
          "Statement": {
            "items": {
              "$ref": "#/components/schemas/workspace.v1.Statement"
            },
            "type": "array"
          },
          "Version": {
            "default": "2012-10-27",
            "type": "string"
          }
        },
        "required": [
          "Statement",
          "Version"
        ]
      },
      "workspace.v1.TrustRoleWithARN": {
        "properties": {
          "arn": {
            "type": "string"
          },
          "das_trust_role": {
            "$ref": "#/components/schemas/workspace.v1.TrustRole"
          }
        },
        "required": [
          "arn",
          "das_trust_role"
        ]
      },
      "workspace.v1.WorkspaceConfig": {
        "properties": {
          "activity_exporter": {
            "$ref": "#/components/schemas/workspace.v1.ActivityExporterConfig"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "github": {
            "$ref": "#/components/schemas/workspace.v1.GithubConfiguration"
          },
          "metadata": {
            "$ref": "#/components/schemas/meta.v1.ObjectMeta"
          },
          "metrics_exporter": {
            "$ref": "#/components/schemas/workspace.v1.MetricsExporterConfig"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          },
          "status": {
            "$ref": "#/components/schemas/workspace.v1.Status"
          }
        }
      },
      "workspace.v1.WorkspaceGetResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/workspace.v1.WorkspaceConfig"
          }
        }
      },
      "workspace.v1.WorkspacePatchRequest": {
        "properties": {
          "activity_exporter": {
            "$ref": "#/components/schemas/workspace.v1.ActivityExporterConfig"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "github": {
            "$ref": "#/components/schemas/workspace.v1.GithubConfiguration"
          },
          "metrics_exporter": {
            "$ref": "#/components/schemas/workspace.v1.MetricsExporterConfig"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          }
        }
      },
      "workspace.v1.WorkspacePatchResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      },
      "workspace.v1.WorkspacePutRequest": {
        "properties": {
          "activity_exporter": {
            "$ref": "#/components/schemas/workspace.v1.ActivityExporterConfig"
          },
          "decisions_exporter": {
            "$ref": "#/components/schemas/workspace.v1.DecisionExporterConfig"
          },
          "github": {
            "$ref": "#/components/schemas/workspace.v1.GithubConfiguration"
          },
          "metrics_exporter": {
            "$ref": "#/components/schemas/workspace.v1.MetricsExporterConfig"
          },
          "source_control": {
            "$ref": "#/components/schemas/git.v1.SourceControlConfig"
          }
        }
      },
      "workspace.v1.WorkspacePutResponse": {
        "properties": {
          "request_id": {
            "type": "string"
          }
        }
      }
    }
  },
  "externalDocs": {
    "description": "Styra DAS Documentation",
    "url": "https://docs.styra.com"
  },
  "info": {
    "contact": {
      "email": "support@styra.com"
    },
    "description": "Styra DAS is entirely API-driven.\n\nAccess to the APIs requires authentication that should be provided as an Authorization HTTP header including a Styra DAS-issued token:\n\n`Authorization: Bearer <YOURTOKENHERE>`\n\nTo request a token you need to have an Styra account, and create a token via the API Tokens menu.",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "termsOfService": "https://doc-policies.s3-us-west-2.amazonaws.com/terms.html",
    "title": "Styra API",
    "version": "2.0.0"
  },
  "openapi": "3.0.3",
  "paths": {
    "/openapi/deprecated/{spec}/{version}": {
      "get": {
        "operationId": "OpenAPIDeprecated",
        "parameters": [
          {
            "description": "OpenAPI Spec version",
            "in": "path",
            "name": "spec",
            "required": true,
            "schema": {
              "pattern": "v.*",
              "type": "string"
            }
          },
          {
            "description": "API version",
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "summary": "Returns a deprecated version",
        "tags": [
          "openapi"
        ]
      }
    },
    "/openapi/v2": {
      "get": {
        "operationId": "OpenAPIv2",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Swagger v2 Specification",
        "tags": [
          "openapi"
        ]
      }
    },
    "/openapi/v3": {
      "get": {
        "operationId": "OpenAPIv3",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "OpenAPI v3 Specification",
        "tags": [
          "openapi"
        ]
      }
    },
    "/v1/activity": {
      "post": {
        "description": "Returns at most 256 entries by default, unless Count is provided (max: 4096). If only start_time or end_time is provided by the caller then the request defaults to 1 hour range",
        "operationId": "HandleActivity",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/activity.v1.ActivityPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity.v1.ActivityPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Retrieve activity log",
        "tags": [
          "activity"
        ]
      }
    },
    "/v1/agents/{kind}": {
      "get": {
        "operationId": "GetAgentStatuses",
        "parameters": [
          {
            "description": "agent kind such as \"agents\", \"datasources\", \"datasources-agents\", \"slps\", \"exporters\"",
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return only statuses for one or more system ID",
            "in": "query",
            "name": "system",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return only statuses for one or more agent ID",
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "filters keys from agent statuses (separate keys by comma, nest keys using dot notation (e.g. parentKey.nestedKey,parentKey2). lists unsupported",
            "in": "query",
            "name": "excludes",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusGetResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get current agent statuses",
        "tags": [
          "agents"
        ]
      }
    },
    "/v1/agents/{kind}/status": {
      "post": {
        "operationId": "PostAgentStatus",
        "parameters": [
          {
            "description": "agent kind such as \"agents\", \"datasources\", \"datasources-agents\", \"slps\", \"exporters\"",
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/status.v1.AgentStatus"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Post agent status",
        "tags": [
          "agents"
        ]
      }
    },
    "/v1/agents/{kind}/{id}": {
      "delete": {
        "operationId": "DeleteAgentInfo",
        "parameters": [
          {
            "description": "agent kind such as \"agents\", \"datasources\", \"datasources-agents\", \"slps\", \"exporters\"",
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "agent id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.DeleteAgentResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Delete agent information",
        "tags": [
          "agents"
        ]
      }
    },
    "/v1/agents/{kind}/{id}/status": {
      "put": {
        "operationId": "UpdateAgentStatus",
        "parameters": [
          {
            "description": "agent kind such as \"agents\", \"datasources\", \"datasources-agents\", \"slps\", \"exporters\"",
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "agent id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/status.v1.AgentStatus"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update agent status",
        "tags": [
          "agents"
        ]
      }
    },
    "/v1/authz/evaluation": {
      "post": {
        "operationId": "CheckPermissions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/authz.v1.CheckPermissionInput"
                },
                "type": "array"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.CheckPermissionsPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Evaluate a list of permissions",
        "tags": [
          "authz"
        ]
      }
    },
    "/v1/authz/rolebindings": {
      "get": {
        "operationId": "ListAllRoleBindings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RoleBindingsListAllResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List all role bindings for all resources of all resource types",
        "tags": [
          "authz"
        ]
      }
    },
    "/v1/authz/rolebindings/{resourcetype}/{resource}": {
      "get": {
        "operationId": "ListRoleBindings.v1",
        "parameters": [
          {
            "description": "resource type",
            "in": "path",
            "name": "resourcetype",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "resource id",
            "in": "path",
            "name": "resource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RoleBindingsListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List role bindings",
        "tags": [
          "authz"
        ]
      }
    },
    "/v1/authz/rolebindings/{resourcetype}/{resource}/{rolebinding}": {
      "delete": {
        "operationId": "DeleteRoleBinding.v1",
        "parameters": [
          {
            "description": "resource type",
            "in": "path",
            "name": "resourcetype",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "resource id",
            "in": "path",
            "name": "resource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "role binding id",
            "in": "path",
            "name": "rolebinding",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "if set to 'false', only deletes the role binding configuration and does not delete associated objects",
            "in": "query",
            "name": "recursive",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RoleBindingsDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a resource role binding",
        "tags": [
          "authz"
        ]
      },
      "get": {
        "operationId": "GetRoleBinding.v1",
        "parameters": [
          {
            "description": "resource type",
            "in": "path",
            "name": "resourcetype",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "resource id",
            "in": "path",
            "name": "resource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "role binding id",
            "in": "path",
            "name": "rolebinding",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RoleBindingsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a role binding",
        "tags": [
          "authz"
        ]
      },
      "put": {
        "operationId": "UpdateRoleBinding",
        "parameters": [
          {
            "description": "resource type",
            "in": "path",
            "name": "resourcetype",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "resource id",
            "in": "path",
            "name": "resource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "role binding id",
            "in": "path",
            "name": "rolebinding",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/authz.v1.RoleBindingsPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RoleBindingsPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Update a role binding",
        "tags": [
          "authz"
        ]
      }
    },
    "/v1/authz/roles": {
      "get": {
        "operationId": "ListRoles.v1",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v1.RolesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List Styra-defined roles",
        "tags": [
          "authz"
        ]
      }
    },
    "/v1/blueprints": {
      "get": {
        "operationId": "ListBlueprints",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/blueprints.v1.BlueprintListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List available blueprints.",
        "tags": [
          "blueprints"
        ]
      }
    },
    "/v1/blueprints/{name}": {
      "post": {
        "operationId": "ExecuteBlueprint",
        "parameters": [
          {
            "description": "The blueprint name.",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/blueprints.v1.BlueprintPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/blueprints.v1.BlueprintPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v2.ErrorResponse"
                }
              }
            },
            "description": "Bad request"
          }
        },
        "summary": "Execute a blueprint.",
        "tags": [
          "blueprints"
        ]
      }
    },
    "/v1/bundles": {
      "get": {
        "operationId": "GetPolicyBundle1",
        "parameters": [
          {
            "description": "policy name",
            "in": "query",
            "name": "policy",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "path to partial evaluation",
            "in": "query",
            "name": "eval_path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kind of a bundle",
            "in": "query",
            "name": "kind",
            "schema": {
              "default": "Plain",
              "enum": [
                "Plain",
                "BJson"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/gzip": {
                "schema": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "application/json": {
                "schema": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "304": {
            "description": "Not Modified"
          }
        },
        "summary": "Get a policy bundle",
        "tags": [
          "bundles"
        ]
      }
    },
    "/v1/bundles/{policy}": {
      "get": {
        "operationId": "GetPolicyBundle2",
        "parameters": [
          {
            "description": "policy name",
            "in": "path",
            "name": "policy",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "path to partial evaluation",
            "in": "query",
            "name": "eval_path",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Kind of a bundle",
            "in": "query",
            "name": "kind",
            "schema": {
              "default": "Plain",
              "enum": [
                "Plain",
                "BJson"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/gzip": {
                "schema": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                }
              },
              "application/json": {
                "schema": {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a policy bundle",
        "tags": [
          "bundles"
        ]
      }
    },
    "/v1/data": {
      "get": {
        "description": "Data (whether the result of evaluating policy or the data gathered by datasources) is arranged into a tree. List the locations within the tree that data exists.",
        "operationId": "ListData",
        "parameters": [
          {
            "description": "Rego query to be executed for the documents",
            "in": "query",
            "name": "rego",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Json Path expression to extract portions of documents",
            "in": "query",
            "name": "jsonpath",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only used explicitly provided policies and data. Do not load anything from DAS",
            "in": "query",
            "name": "sandbox",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Enable strict Rego compilation mode",
            "in": "query",
            "name": "strict",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Initial data object in JSON format",
            "in": "query",
            "name": "data",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Download data as data.json file",
            "in": "query",
            "name": "download",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Returns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          }
        },
        "summary": "List data",
        "tags": [
          "data"
        ]
      },
      "head": {
        "operationId": "HeadListData",
        "parameters": [
          {
            "description": "Rego query to be executed for the documents",
            "in": "query",
            "name": "rego",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Json Path expression to extract portions of documents",
            "in": "query",
            "name": "jsonpath",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Check size of data",
        "tags": [
          "data"
        ]
      },
      "post": {
        "operationId": "ShowAllData",
        "parameters": [
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/data.v1.DataRequest"
              }
            },
            "text/plain": {
              "schema": {
                "$ref": "#/components/schemas/data.v1.DataRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Show all data",
        "tags": [
          "data"
        ]
      }
    },
    "/v1/data/{name}": {
      "get": {
        "description": "Show data at the given `name`. The `name` must be an extension of one of the locations of data as returned by `GET v1/data`",
        "operationId": "GetData",
        "parameters": [
          {
            "description": "Data name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "Rego query to be executed for the documents",
            "in": "query",
            "name": "rego",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "JSONPath expression to extract portions of documents",
            "in": "query",
            "name": "jsonpath",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Only used explicitly provided policies and data. Do not load anything from DAS",
            "in": "query",
            "name": "sandbox",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Enable strict Rego compilation mode",
            "in": "query",
            "name": "strict",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Initial data object in JSON format",
            "in": "query",
            "name": "data",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Download data as <name>.json file",
            "in": "query",
            "name": "download",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "Returns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          }
        },
        "summary": "Get data",
        "tags": [
          "data"
        ]
      },
      "head": {
        "operationId": "HeadGetData",
        "parameters": [
          {
            "description": "data name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "Rego query to be executed for the documents",
            "in": "query",
            "name": "rego",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Json Path expression to extract portions of documents",
            "in": "query",
            "name": "jsonpath",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Check the size of the data",
        "tags": [
          "data"
        ]
      },
      "patch": {
        "description": "Modify the data of the push datasource registered at `<path>` by applying a JSON patch to the JSON document. The content type for the patch is `application/json-patch+json`. The operation returns the modified data.",
        "operationId": "PatchData",
        "parameters": [
          {
            "description": "data name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "etag",
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            },
            "application/vnd.styra.patch+json": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataPatchResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          }
        },
        "summary": "Patch data",
        "tags": [
          "data"
        ]
      },
      "post": {
        "description": "Show data at the given `name`. The `name` must be an extension of one of the locations of data as returned by `GET v1/data`.",
        "operationId": "ShowData",
        "parameters": [
          {
            "description": "data name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/data.v1.DataRequest"
              }
            },
            "text/plain": {
              "schema": {
                "$ref": "#/components/schemas/data.v1.DataRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Show data",
        "tags": [
          "data"
        ]
      },
      "put": {
        "description": "Set the data for the datasource registered at `<name>` to an arbitrary JSON document. This data can be read by doing `GET v1/data/<path>`",
        "operationId": "PutData",
        "parameters": [
          {
            "description": "data name",
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "etag",
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            },
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            },
            "application/vnd.styra.push+json": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            },
            "application/vnd.styra.push+sjson": {
              "schema": {
                "$ref": "#/components/schemas/meta.v1.RequestObject"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/data.v1.DataPutResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "413": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Request Entity Too Large"
          }
        },
        "summary": "Publish data",
        "tags": [
          "data"
        ]
      }
    },
    "/v1/datasources": {
      "get": {
        "operationId": "ListDatasources",
        "parameters": [
          {
            "description": "Filter data source by system ID",
            "in": "query",
            "name": "system",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/datasources.v1.DatasourcesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List data sources",
        "tags": [
          "datasources"
        ]
      }
    },
    "/v1/datasources/{datasource}": {
      "delete": {
        "operationId": "DeleteDatasource",
        "parameters": [
          {
            "description": "Data source ID",
            "in": "path",
            "name": "datasource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/datasources.v1.DatasourcesDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a data source",
        "tags": [
          "datasources"
        ]
      },
      "get": {
        "operationId": "GetDatasource",
        "parameters": [
          {
            "description": "Data source ID",
            "in": "path",
            "name": "datasource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "Execute data source",
            "in": "query",
            "name": "execute",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/datasources.v1.DatasourcesGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a data source",
        "tags": [
          "datasources"
        ]
      },
      "post": {
        "operationId": "ExecuteDatasource",
        "parameters": [
          {
            "description": "Data source ID",
            "in": "path",
            "name": "datasource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "Execute data source",
            "in": "query",
            "name": "execute",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Preview data source",
            "in": "query",
            "name": "preview",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "This is part of preview workflow.\nDownload preview data as data.json file.",
            "in": "query",
            "name": "download",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "description": "This is part of preview workflow.\nReturns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/datasources.v1.DatasourcesPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/datasources.v1.DatasourcesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Execute or Preview a data source",
        "tags": [
          "datasources"
        ]
      },
      "put": {
        "operationId": "UpsertDatasource",
        "parameters": [
          {
            "description": "Data source ID",
            "in": "path",
            "name": "datasource",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match> documentation.",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/datasources.v1.DatasourcesPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/datasources.v1.DatasourcesPutResponse"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Etag": {
                "description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource. See <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag> documentation.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "304": {
            "description": "Not Modified"
          }
        },
        "summary": "Upsert a data source",
        "tags": [
          "datasources"
        ]
      }
    },
    "/v1/decisions": {
      "get": {
        "operationId": "SearchDecisionLogsGet",
        "parameters": [
          {
            "description": "input_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "input_max_size",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "result_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "result_max_size",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "continue from cursor position of previous query",
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "minimum decision time",
            "in": "query",
            "name": "start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "maximum decision time",
            "in": "query",
            "name": "end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "search query",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "system ID",
            "in": "query",
            "name": "system",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "stack ID",
            "in": "query",
            "name": "stack",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "maximum number of decisions to return",
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 100,
              "type": "integer"
            }
          },
          {
            "description": "comma-separated list of ALL, UNKNOWN, ADVICE, ALLOWED, DENIED, ERROR",
            "in": "query",
            "name": "result_kind",
            "schema": {
              "default": "ALL",
              "type": "string"
            }
          },
          {
            "description": "ASC, DESC",
            "in": "query",
            "name": "order",
            "schema": {
              "default": "DESC",
              "type": "string"
            }
          },
          {
            "description": "client time zone offset e.g. -07:00, +3:00, Z. Local time expressions in query are adjusted with this offset",
            "in": "query",
            "name": "default_timezone",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return only essential decision fields",
            "in": "query",
            "name": "compact",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/analysis.v1.DecisionsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Search decision logs",
        "tags": [
          "decisions"
        ]
      },
      "post": {
        "operationId": "SearchDecisionLogsPost",
        "parameters": [
          {
            "description": "input_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "input_max_size",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "result_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "result_max_size",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/analysis.v1.DecisionsGetRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/analysis.v1.DecisionsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Search decision logs",
        "tags": [
          "decisions"
        ]
      }
    },
    "/v1/decisions/{cursor}": {
      "get": {
        "operationId": "GetDecision",
        "parameters": [
          {
            "description": "input_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "input_max_size",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "result_max_size will remove specified subfield from response if it exceeds the size specified",
            "in": "query",
            "name": "result_max_size",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "decision cursor value",
            "in": "path",
            "name": "cursor",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/analysis.v1.DecisionResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a single decision",
        "tags": [
          "decisions"
        ]
      }
    },
    "/v1/identity-providers": {
      "get": {
        "operationId": "ListProviders",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ProvidersListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List providers",
        "tags": [
          "identity-providers"
        ]
      },
      "post": {
        "operationId": "CreateProvider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/identity-providers.v1.ProvidersPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ProvidersPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Create provider",
        "tags": [
          "identity-providers"
        ]
      }
    },
    "/v1/identity-providers/validate": {
      "post": {
        "operationId": "ValidateProvider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/identity-providers.v1.ProvidersPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ValidatePostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Validate provider",
        "tags": [
          "identity-providers"
        ]
      }
    },
    "/v1/identity-providers/{providerId}": {
      "delete": {
        "operationId": "DeleteProvider",
        "parameters": [
          {
            "description": "provider ID",
            "in": "path",
            "name": "providerId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ProvidersDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete provider",
        "tags": [
          "identity-providers"
        ]
      },
      "get": {
        "operationId": "GetProvider",
        "parameters": [
          {
            "description": "provider ID",
            "in": "path",
            "name": "providerId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ProvidersGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get provider",
        "tags": [
          "identity-providers"
        ]
      },
      "put": {
        "operationId": "UpdateProvider",
        "parameters": [
          {
            "description": "provider ID",
            "in": "path",
            "name": "providerId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          },
          {
            "description": "if set to '*' then creates a new provider with type-specific related objects",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/identity-providers.v1.ProvidersPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/identity-providers.v1.ProvidersPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Create or update provider",
        "tags": [
          "identity-providers"
        ]
      }
    },
    "/v1/integrations/terraform/run-task/callback": {
      "post": {
        "operationId": "runTaskCallback",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/integrations.v1.hashicorp.RunTaskCallbackRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Handle callbacks for Terraform Run Task integrations.",
        "tags": [
          "terraform-integration"
        ]
      }
    },
    "/v1/integrations/terraform/run-task/configuration": {
      "delete": {
        "operationId": "DeleteRunTask",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Delete the current Terraform Run Task integration. This does not delete the integration within Terraform Cloud or Enterprise.",
        "tags": [
          "terraform-integration"
        ]
      },
      "get": {
        "operationId": "GetRunTask",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/integrations.v1.hashicorp.RunTaskResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get the current Terraform Run Task integration.",
        "tags": [
          "terraform-integration"
        ]
      },
      "put": {
        "operationId": "UpsertRunTask",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/integrations.v1.UpsertRunTaskRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/integrations.v1.hashicorp.RunTaskResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Upsert a new Terraform Run Task integration. This also creates the Terraform Run Task within Terraform Cloud or Enterprise.",
        "tags": [
          "terraform-integration"
        ]
      }
    },
    "/v1/integrations/terraform/run-task/configuration/mappings": {
      "get": {
        "operationId": "GetMappings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/integrations.v1.MappingsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get the mappings of Terrafrom workspaces to DAS systems.",
        "tags": [
          "terraform-integration"
        ]
      },
      "put": {
        "operationId": "UpsertMappings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/integrations.v1.UpsertMappingsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/integrations.v1.MappingsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Upsert the mappings of Terrafrom workspaces to DAS systems.",
        "tags": [
          "terraform-integration"
        ]
      }
    },
    "/v1/invitations": {
      "get": {
        "operationId": "ListInvitations",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations.v1.InvitationsListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List invitations",
        "tags": [
          "invitations"
        ]
      },
      "post": {
        "operationId": "Create invitation",
        "parameters": [
          {
            "description": "set to false to avoid sending an email",
            "in": "query",
            "name": "email",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/invitations.v1.InvitationsPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations.v1.InvitationsPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Invite user",
        "tags": [
          "invitations"
        ]
      }
    },
    "/v1/invitations/{id}": {
      "delete": {
        "operationId": "RevokeInvitation",
        "parameters": [
          {
            "description": "user ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations.v1.InvitationsDeleteResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Revoke invitation",
        "tags": [
          "invitations"
        ]
      },
      "get": {
        "operationId": "GetInvitation",
        "parameters": [
          {
            "description": "user ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations.v1.InvitationsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get invitation",
        "tags": [
          "invitations"
        ]
      }
    },
    "/v1/invitations/{token}": {
      "put": {
        "operationId": "AcceptInvitation",
        "parameters": [
          {
            "description": "token from the invitation URL",
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/invitations.v1.InvitationsPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/invitations.v1.InvitationsPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Accept invitation",
        "tags": [
          "invitations"
        ]
      }
    },
    "/v1/libraries": {
      "get": {
        "operationId": "LibrariesList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/libraries.v1.LibrariesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List all libraries",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/source-control/verify-config": {
      "post": {
        "description": "Verifies that the repository can be accessed with the provided credentials",
        "operationId": "SourceControlVerifyConfigLibrary",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.VerifyConfigRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.VerifyConfigResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Verify git access",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/{id}": {
      "delete": {
        "operationId": "LibrariesDelete",
        "parameters": [
          {
            "description": "id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Delete a library",
        "tags": [
          "libraries"
        ]
      },
      "get": {
        "operationId": "LibrariesGet",
        "parameters": [
          {
            "description": "id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "set to 'false' to omit policies from the output",
            "in": "query",
            "name": "policies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit modules from the output",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit datasources from the output",
            "in": "query",
            "name": "datasources",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policy rule counts in the output",
            "in": "query",
            "name": "rule_counts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "level of report for bundles depending on the library. One of (none, active, all). \"active\" is the default",
            "in": "query",
            "name": "dependant_bundles",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/libraries.v1.LibraryResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get a library",
        "tags": [
          "libraries"
        ]
      },
      "put": {
        "operationId": "LibrariesUpdate",
        "parameters": [
          {
            "description": "id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/libraries.v1.CreateLibraryRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/libraries.v1.LibraryResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Upsert a new library",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/{id}/branch": {
      "delete": {
        "operationId": "DeleteUserBranchLibrary",
        "parameters": [
          {
            "description": "library id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.DeleteBranchResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a user-owned branch",
        "tags": [
          "libraries"
        ]
      },
      "get": {
        "description": "Gets the list of files for the branch that the Styra DAS creates when modifying rego in the Styra DAS UI and pushing the changes to GitHub in a branch for review.",
        "operationId": "GetSourceControlFilesBranchLibrary",
        "parameters": [
          {
            "description": "library id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFileChangesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in Styra DAS-created branch.",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/{id}/commits": {
      "post": {
        "description": "Commit files to source control associated with a library",
        "operationId": "CommitFilesToSourceControlLibrary",
        "parameters": [
          {
            "description": "library id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.CommitInput"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.PostCommitResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Commit files to library source control",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/{id}/master": {
      "get": {
        "description": "Gets the list of files in the currently chosen branch.",
        "operationId": "GetSourceControlFilesMasterLibrary",
        "parameters": [
          {
            "description": "library id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFilesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in current branch.",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/libraries/{id}/validate/tests": {
      "post": {
        "operationId": "LibrariesValidateTests",
        "parameters": [
          {
            "description": "id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/libraries.v1.LibrariesTestsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/libraries.v1.LibrariesTestsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Validate library unit tests",
        "tags": [
          "libraries"
        ]
      }
    },
    "/v1/logreplay": {
      "post": {
        "operationId": "RunLogReplay",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/logreplay.v1.ReplayRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/logreplay.v1.ReplayResult"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Run log-replay",
        "tags": [
          "logreplay"
        ]
      }
    },
    "/v1/logs": {
      "post": {
        "operationId": "PostDecisions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/meta.v1.RequestObject"
                },
                "type": "array"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/logs.v1.PostDecisionsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Post decision logs",
        "tags": [
          "logs"
        ]
      }
    },
    "/v1/logs/{partition}": {
      "post": {
        "operationId": "PostDecisionsWithPartition",
        "parameters": [
          {
            "description": "partition name. Currently not used",
            "in": "path",
            "name": "partition",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/meta.v1.RequestObject"
                },
                "type": "array"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/logs.v1.PostDecisionsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Post decision logs with partition",
        "tags": [
          "logs"
        ]
      }
    },
    "/v1/mock/opa": {
      "get": {
        "operationId": "ListMockOpas",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mock-opa.v1.MockOpaListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List mock opas.",
        "tags": [
          "mock/opa"
        ]
      },
      "post": {
        "operationId": "CreateMockOpa",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mock-opa.v1.MockOpaPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mock-opa.v1.MockOpaPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v2.ErrorResponse"
                }
              }
            },
            "description": "Bad request"
          }
        },
        "summary": "Create a mock opa.",
        "tags": [
          "mock/opa"
        ]
      }
    },
    "/v1/mock/opa/info": {
      "get": {
        "operationId": "GetInfo",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mock-opa.v1.MockOpaInfoResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get info about the service.",
        "tags": [
          "mock/opa"
        ]
      }
    },
    "/v1/mock/opa/{id}": {
      "delete": {
        "operationId": "DeleteMockOpa",
        "parameters": [
          {
            "description": "The mock opa id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mock-opa.v1.MockOpaDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v2.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a mock opa.",
        "tags": [
          "mock/opa"
        ]
      },
      "get": {
        "operationId": "GetMockOpa",
        "parameters": [
          {
            "description": "The mock opa id.",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mock-opa.v1.MockOpaGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v2.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a mock opa.",
        "tags": [
          "mock/opa"
        ]
      }
    },
    "/v1/notifications-install/callback/{type}": {
      "get": {
        "operationId": "RegisterNotificationTool",
        "parameters": [
          {
            "description": "notification type",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "authorization code from notification tool",
            "in": "query",
            "name": "code",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "unique identification code",
            "in": "query",
            "name": "state",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "307": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notifications.v1.NotificationIntegrationResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Handle callbacks from notification applications.",
        "tags": [
          "notifications"
        ]
      }
    },
    "/v1/notifications-install/state/{type}": {
      "get": {
        "operationId": "InitiateNotificationInstall",
        "parameters": [
          {
            "description": "notification type",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "the landing page when OAuth is successfully done.",
            "in": "query",
            "name": "redirect_url",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notifications.v1.NotificationInstallNewStateResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Start installing the notification tool.",
        "tags": [
          "notifications"
        ]
      }
    },
    "/v1/notifications/{type}": {
      "delete": {
        "operationId": "UninstallNotificationToolStatus",
        "parameters": [
          {
            "description": "notification type",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notifications.v1.NotificationToolDeleteResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Uninstall a notification tool.",
        "tags": [
          "notifications"
        ]
      },
      "get": {
        "operationId": "GetNotificationToolStatus",
        "parameters": [
          {
            "description": "notification type",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notifications.v1.NotificationToolStatusResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get the status of a notification tool.",
        "tags": [
          "notifications"
        ]
      },
      "put": {
        "operationId": "InsertNotificationToolToken",
        "parameters": [
          {
            "description": "notification type",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/notifications.v1.NotificationToolTokenRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notifications.v1.NotificationToolTokenResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Insert an access token for the notification tool.",
        "tags": [
          "notifications"
        ]
      }
    },
    "/v1/password_reset_requests": {
      "post": {
        "operationId": "Request reset password",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwords.v1.PasswordResetRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/passwords.v1.PasswordResetResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Request password reset email",
        "tags": [
          "passwords"
        ]
      }
    },
    "/v1/password_reset_requests/{token}": {
      "put": {
        "operationId": "Reset password",
        "parameters": [
          {
            "description": "Token ID",
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwords.v1.PasswordResetRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/passwords.v1.PasswordResetResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Reset password",
        "tags": [
          "passwords"
        ]
      }
    },
    "/v1/passwords/strength": {
      "post": {
        "operationId": "Check password strength",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwords.v1.PasswordStrengthPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/passwords.v1.PasswordStrengthPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Analyze password strength",
        "tags": [
          "passwords"
        ]
      }
    },
    "/v1/policies": {
      "get": {
        "operationId": "ListPolicies",
        "parameters": [
          {
            "description": "return rego metadata of specified type or all if no type provided",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return rego metadata for each module separately",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "return rego metadata for draft policies (when metadata flag is used)",
            "in": "query",
            "name": "drafts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "return only the policies having the prefix",
            "in": "query",
            "name": "prefix",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List policies",
        "tags": [
          "policies"
        ]
      },
      "post": {
        "operationId": "BulkUploadPolicies",
        "requestBody": {
          "content": {
            "application/gzip": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "description": "Policy bundle",
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesBulkUploadResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Bulk upload policies",
        "tags": [
          "policies"
        ]
      }
    },
    "/v1/policies/playground": {
      "get": {
        "operationId": "ListPlaygroundPolicies",
        "parameters": [
          {
            "description": "return rego metadata of specified type or all if no type provided",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return rego metadata for draft policies (when metadata flag is used)",
            "in": "query",
            "name": "drafts",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List playground policies",
        "tags": [
          "policies"
        ]
      },
      "post": {
        "operationId": "BulkUploadPlaygroundPolicies",
        "requestBody": {
          "content": {
            "application/gzip": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "description": "Policy bundle",
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesBulkUploadResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Bulk upload playground policies",
        "tags": [
          "policies"
        ]
      }
    },
    "/v1/policies/systems/{system}": {
      "get": {
        "operationId": "ListSystemPolicies",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return rego metadata of specified type or all if no type provided",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return rego metadata for draft policies (when metadata flag is used)",
            "in": "query",
            "name": "drafts",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List system policies",
        "tags": [
          "policies"
        ]
      },
      "post": {
        "operationId": "BulkUploadSystemPolicies",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/gzip": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "description": "Policy bundle",
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PoliciesBulkUploadResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Bulk upload system policies",
        "tags": [
          "policies"
        ]
      }
    },
    "/v1/policies/{policy}": {
      "delete": {
        "operationId": "DeletePolicy",
        "parameters": [
          {
            "description": "policy name",
            "in": "path",
            "name": "policy",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PolicyDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a policy",
        "tags": [
          "policies"
        ]
      },
      "get": {
        "operationId": "GetPolicy",
        "parameters": [
          {
            "description": "policy name",
            "in": "path",
            "name": "policy",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          },
          {
            "description": "include dependencies",
            "in": "query",
            "name": "dependencies",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PolicyGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a policy",
        "tags": [
          "policies"
        ]
      },
      "put": {
        "operationId": "UpdatePolicy",
        "parameters": [
          {
            "description": "policy name",
            "in": "path",
            "name": "policy",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          },
          {
            "description": "etag",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/policies.v1.PoliciesPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/policies.v1.PolicyPutResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update a policy",
        "tags": [
          "policies"
        ]
      }
    },
    "/v1/rego/fmt": {
      "post": {
        "operationId": "Format",
        "parameters": [
          {
            "description": "Enable formatting to comply with both the RegoV0 and RegoV1 syntax",
            "in": "query",
            "name": "v1",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/services.policies.v1.rego.FormatInput"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/services.policies.v1.rego.FormatResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Format Rego code",
        "tags": [
          "rego"
        ]
      }
    },
    "/v1/relay/clients": {
      "get": {
        "operationId": "GetClients",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relay.protocol.ClientsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get clients",
        "tags": [
          "relay-server"
        ]
      }
    },
    "/v1/relay/clients/{key}": {
      "delete": {
        "operationId": "EvictClient",
        "parameters": [
          {
            "description": "key that the relay client registered with",
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "pattern": "[a-zA-Z0-9-_]+",
              "type": "string"
            }
          },
          {
            "description": "id of a specific relay client",
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/relay.protocol.ClientsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Evict client connections",
        "tags": [
          "relay-server"
        ]
      }
    },
    "/v1/relay/register/{key}": {
      "get": {
        "operationId": "RegisterClient",
        "parameters": [
          {
            "description": "key to register the relay client with",
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "pattern": "[a-zA-Z0-9-_]+",
              "type": "string"
            }
          },
          {
            "description": "id of the relay client",
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Register Client",
        "tags": [
          "relay-server"
        ]
      }
    },
    "/v1/secrets": {
      "get": {
        "operationId": "ListSecrets",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/secrets.v1.SecretsListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List secrets",
        "tags": [
          "secrets"
        ]
      }
    },
    "/v1/secrets/{secretId}": {
      "delete": {
        "operationId": "DeleteSecret",
        "parameters": [
          {
            "description": "secret ID",
            "in": "path",
            "name": "secretId",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/secrets.v1.SecretsDeleteResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Delete secret",
        "tags": [
          "secrets"
        ]
      },
      "get": {
        "operationId": "GetSecret",
        "parameters": [
          {
            "description": "secret ID",
            "in": "path",
            "name": "secretId",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/secrets.v1.SecretsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get secret",
        "tags": [
          "secrets"
        ]
      },
      "put": {
        "operationId": "CreateUpdateSecret",
        "parameters": [
          {
            "description": "secret ID",
            "in": "path",
            "name": "secretId",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "if set to '*' then the request fill fail if the secret already exists",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/secrets.v1.SecretsPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/secrets.v1.SecretsPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/secrets.v1.SecretsPutResponse"
                }
              }
            },
            "description": "Secret already exists"
          }
        },
        "summary": "Create/update secret",
        "tags": [
          "secrets"
        ]
      }
    },
    "/v1/signup/passwords/reset": {
      "post": {
        "operationId": "Request reset password for User ID",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwords.v1.PasswordResetRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/passwords.v1.PasswordResetResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Request password reset email",
        "tags": [
          "signup-passwords"
        ]
      }
    },
    "/v1/signup/passwords/strength": {
      "post": {
        "operationId": "Check signup password strength",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwords.v1.PasswordStrengthPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/passwords.v1.PasswordStrengthPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Analyze password strength",
        "tags": [
          "signup-passwords"
        ]
      }
    },
    "/v1/stacks": {
      "get": {
        "operationId": "ListStacks",
        "parameters": [
          {
            "description": "set to 'false' to omit policies from the output",
            "in": "query",
            "name": "policies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit modules from the output",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit datasources from the output",
            "in": "query",
            "name": "datasources",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit errors/warnings from the output",
            "in": "query",
            "name": "errors",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit metadata from the output",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policy rule counts in the output",
            "in": "query",
            "name": "rule_counts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit list of matching systems in the output",
            "in": "query",
            "name": "matching_systems",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit minimum OPA version for systems using stack",
            "in": "query",
            "name": "minimum_opa_version",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List stacks",
        "tags": [
          "stacks"
        ]
      },
      "post": {
        "operationId": "CreateStack",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/stacks.v1.StacksPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create a stack",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/source-control/verify-config": {
      "post": {
        "description": "Verifies that the repository can be accessed with the provided credentials",
        "operationId": "SourceControlVerifyConfigStack",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.VerifyConfigRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.VerifyConfigResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Verify git access",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{id}/branch": {
      "delete": {
        "operationId": "DeleteUserBranchStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.DeleteBranchResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a user-owned branch",
        "tags": [
          "stacks"
        ]
      },
      "get": {
        "description": "Gets the list of files for the branch that the Styra DAS creates when modifying rego in the Styra DAS UI and pushing the changes to GitHub in a branch for review.",
        "operationId": "GetSourceControlFilesBranchStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFileChangesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in Styra DAS-created branch.",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{id}/commits": {
      "post": {
        "description": "Commit files to source control associated with a stack",
        "operationId": "CommitFilesToSourceControlStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.CommitInput"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.PostCommitResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Commit files to stack source control",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{id}/master": {
      "get": {
        "description": "Gets the list of files in the currently chosen branch.",
        "operationId": "GetSourceControlFilesMasterStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFilesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in current branch.",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{stack}": {
      "delete": {
        "operationId": "DeleteStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a stack",
        "tags": [
          "stacks"
        ]
      },
      "get": {
        "operationId": "GetStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "set to 'false' to omit policies from the output",
            "in": "query",
            "name": "policies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit modules from the output",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit datasources from the output",
            "in": "query",
            "name": "datasources",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit errors/warnings from the output",
            "in": "query",
            "name": "errors",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit metadata from the output",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policy rule counts in the output",
            "in": "query",
            "name": "rule_counts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit list of matching systems in the output",
            "in": "query",
            "name": "matching_systems",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit minimum OPA version for systems using stack",
            "in": "query",
            "name": "minimum_opa_version",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "description": "Not found"
          }
        },
        "summary": "Get a stack configuration",
        "tags": [
          "stacks"
        ]
      },
      "put": {
        "operationId": "UpdateStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/stacks.v1.StacksPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksPutResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create or update a stack. Only the fields sent in the request are updated",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{stack}/migrations": {
      "post": {
        "operationId": "MigrateStack",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/stacks.v1.StacksMigrationRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ResponseHeader"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Migrate a stack from one type to another",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{stack}/validate/compliance": {
      "post": {
        "operationId": "ValidateStackCompliance",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "set delay of asynchronous response HTTP(202); range [1s - compliance-api-timeout].",
            "in": "query",
            "name": "asyncdelay",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "get asynchronous response; see HTTP(202) Location parameter",
            "in": "query",
            "name": "asyncresponse",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set to 'latest', get most recent cached results for specified stack.",
            "in": "query",
            "name": "interval",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/stacks.v1.StacksComplianceRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksComplianceResponse"
                }
              }
            },
            "description": "OK"
          },
          "202": {
            "description": "Accepted"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Validate stack compliance",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{stack}/validate/compliance/{cursor}": {
      "get": {
        "operationId": "GetNextPageOfStackComplianceViolations",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "paging cursor obtained from previous calls",
            "in": "path",
            "name": "cursor",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "maximum number of violations to return",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksComplianceResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get next page of stack compliance violations",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/stacks/{stack}/validate/tests": {
      "post": {
        "operationId": "ValidateStackTests",
        "parameters": [
          {
            "description": "stack id",
            "in": "path",
            "name": "stack",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/stacks.v1.StacksTestsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/stacks.v1.StacksTestsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Validate stack unit tests",
        "tags": [
          "stacks"
        ]
      }
    },
    "/v1/status": {
      "get": {
        "operationId": "GetStatuses",
        "parameters": [
          {
            "description": "return only statuses for one or more system ID",
            "in": "query",
            "name": "system",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusGetResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get current OPA statuses",
        "tags": [
          "status"
        ]
      },
      "post": {
        "operationId": "UpdateStatus",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/status.v1.AgentStatus"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update current OPA status",
        "tags": [
          "status"
        ]
      }
    },
    "/v1/status/{partition}": {
      "post": {
        "operationId": "UpdateStatusWithPartition",
        "parameters": [
          {
            "description": "partition name. Currently not used",
            "in": "path",
            "name": "partition",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/status.v1.AgentStatus"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/status.v1.StatusPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Update current OPA status",
        "tags": [
          "status"
        ]
      }
    },
    "/v1/systems": {
      "get": {
        "operationId": "ListSystems",
        "parameters": [
          {
            "description": "if set to 'true', returns only minimal configuration information for each system",
            "in": "query",
            "name": "compact",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policies from the output",
            "in": "query",
            "name": "policies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit modules from the output",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policy rule counts in the output",
            "in": "query",
            "name": "rule_counts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit datasources from the output",
            "in": "query",
            "name": "datasources",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit errors/warnings from the output",
            "in": "query",
            "name": "errors",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit authz info from the output",
            "in": "query",
            "name": "authz",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit metadata from the output",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit minimum_opa_version from the output",
            "in": "query",
            "name": "minimum_opa_version",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit matching_stacks from the output",
            "in": "query",
            "name": "stacks",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit migration_history from the output",
            "in": "query",
            "name": "migration_history",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit tokens from the output",
            "in": "query",
            "name": "tokens",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit info from the output",
            "in": "query",
            "name": "info",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "if set returns only systems of the specified type",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only systems with a name matching the given regex",
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only systems with a name,ID,type, or description matching the given pattern",
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "maximum number of items to return. If no limit is specified, the default is to return all results.",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "controls the starting point within the list of items. Note that the first item is retrieved by setting a zero offset.",
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List systems",
        "tags": [
          "systems"
        ]
      },
      "post": {
        "operationId": "CreateSystem",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsPostResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Create a system",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/external-ids": {
      "post": {
        "description": "Translate external identifiers to Styra DAS system identifiers",
        "operationId": "TranslateExternalIds",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsTranslateExternalIdsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsTranslateExternalIdsResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Translate identifiers",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/metrics": {
      "get": {
        "operationId": "HandleSystemMetrics",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Handle system metrics",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/source-control/verify-config": {
      "post": {
        "description": "Verifies that the repository can be accessed with the provided credentials",
        "operationId": "SourceControlVerifyConfigSystem",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.VerifyConfigRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.VerifyConfigResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Verify git access",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{id}/branch": {
      "delete": {
        "operationId": "DeleteUserBranchSystem",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.DeleteBranchResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a user-owned branch",
        "tags": [
          "systems"
        ]
      },
      "get": {
        "description": "Gets the list of files for the branch that the Styra DAS creates when modifying rego in the Styra DAS UI and pushing the changes to GitHub in a branch for review.",
        "operationId": "GetSourceControlFilesBranchSystem",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFileChangesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in Styra DAS-created branch.",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{id}/commits": {
      "post": {
        "description": "Commit files to source control associated with a system",
        "operationId": "CommitFilesToSourceControlSystem",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.CommitInput"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.PostCommitResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Commit files to system source control",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{id}/master": {
      "get": {
        "description": "Gets the list of files in the currently chosen branch.",
        "operationId": "GetSourceControlFilesMasterSystem",
        "parameters": [
          {
            "description": "system id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFilesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in current branch.",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}": {
      "delete": {
        "operationId": "DeleteSystem",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "if set to 'false', only deletes the system configuration and does not delete associated objects",
            "in": "query",
            "name": "recursive",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a system",
        "tags": [
          "systems"
        ]
      },
      "get": {
        "operationId": "GetSystem",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "set to 'false' to omit policies from the output",
            "in": "query",
            "name": "policies",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit modules from the output",
            "in": "query",
            "name": "modules",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit policy rule counts in the output",
            "in": "query",
            "name": "rule_counts",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit datasources from the output",
            "in": "query",
            "name": "datasources",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit errors/warnings from the output",
            "in": "query",
            "name": "errors",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit authz info from the output",
            "in": "query",
            "name": "authz",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit metadata from the output",
            "in": "query",
            "name": "metadata",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit minimum_opa_version from the output",
            "in": "query",
            "name": "minimum_opa_version",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit matching_stacks from the output",
            "in": "query",
            "name": "stacks",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit migration_history from the output",
            "in": "query",
            "name": "migration_history",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit tokens from the output",
            "in": "query",
            "name": "tokens",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "set to 'false' to omit info from the output",
            "in": "query",
            "name": "info",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a system",
        "tags": [
          "systems"
        ]
      },
      "put": {
        "description": "* Updating the given system with type-specific related objects, except changing the system's type.\n* Creating a system with given ID with type-specific related objects, only, if the `If-None-Match` header is set to `*`\n\n  Example:\n    ```shell\n    curl -H \"Authorization: Bearer <token>\" \\\n         -H \"Styra-Tenant: <tenant>\" \\\n         -H \"If-None-Match: *\" \\\n         -X PUT https://<das-id>.styra.com \n         -d '{<request body>}'\n    ```\n",
        "operationId": "UpdateSystem",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "if set to '*' then creates a new system with type-specific related objects",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          }
        },
        "summary": "Update or create a system. Only the fields sent in the request are updated",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/agents": {
      "get": {
        "operationId": "GetSystemAgents",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetAgentsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system agents",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/assets/{assettype}": {
      "get": {
        "operationId": "GetAsset",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "asset type",
            "in": "path",
            "name": "assettype",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "404": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              },
              "application/x-yaml": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system asset",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/bundle-compile": {
      "put": {
        "operationId": "UpdateSystemBundleCompile",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsPutBundleCompileRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsPutBundleCompileResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Compile a system bundle",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/bundle-deploy": {
      "get": {
        "operationId": "GetSystemBundleDeploy",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetBundleDeployResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get a system bundle deployment and build status",
        "tags": [
          "systems"
        ]
      },
      "put": {
        "operationId": "UpdateSystemBundleDeploy",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsPutBundleDeployRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsPutBundleDeployResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          }
        },
        "summary": "Deploy a system bundle",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/bundles": {
      "get": {
        "description": "List system bundles, starting from the newest towards the oldest",
        "operationId": "GetSystemBundles",
        "parameters": [
          {
            "description": "if set to 'true', returns only bundles deployed in the past",
            "in": "query",
            "name": "past",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "if set, the newest version to return",
            "in": "query",
            "name": "version",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "return only bundles of given type (policy, context)",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetBundlesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List system bundles",
        "tags": [
          "systems"
        ]
      },
      "post": {
        "operationId": "ImportSystemBundle",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/gzip": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
              }
            },
            "application/x-gzip": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.PostBundleResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Import bundle from archive or another system",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/bundles/{bundle}/{version}/bundle": {
      "get": {
        "operationId": "GetSystemBundle",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "bundle ID",
            "in": "path",
            "name": "bundle",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "version #",
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Kind of a bundle",
            "in": "query",
            "name": "kind",
            "schema": {
              "default": "Plain",
              "enum": [
                "Plain",
                "BJson"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system bundle",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/bundles/{bundle}/{version}/details": {
      "get": {
        "operationId": "GetSystemBundleDetails",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "bundle ID",
            "in": "path",
            "name": "bundle",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "version #",
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system bundle details",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/default-policies": {
      "get": {
        "operationId": "GetDefaultPolicies",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetDefaultPoliciesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get default system policies",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/default-policies/{path}": {
      "get": {
        "operationId": "GetDefaultPolicy",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "policy path",
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetDefaultPolicyResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get default system policy",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/deltabundles/{bundle}/{version}/{etag}/bundle": {
      "get": {
        "operationId": "GetSystemDeltaBundle",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "bundle ID",
            "in": "path",
            "name": "bundle",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "end version #",
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "start etag",
            "in": "path",
            "name": "etag",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "404": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system delta bundle",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/discovery": {
      "get": {
        "operationId": "GetOPADiscoveryConfig",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "etag",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "304": {
            "description": "Not Modified"
          },
          "404": {
            "content": {
              "application/gzip": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get the OPA discovery config for a system",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/instructions": {
      "get": {
        "operationId": "GetInstructions",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsGetInstructionsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get system install/uninstall instructions",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/migrations": {
      "post": {
        "operationId": "MigrateSystem",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsMigrationRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ResponseHeader"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Migrate a system from one system type to another",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/suggestions": {
      "get": {
        "operationId": "RuleSuggestions",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "true to get only the stateful suggestions, false for stateless, omit for both",
            "in": "query",
            "name": "stateful",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsSuggestedRulesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not available, please retry later"
          }
        },
        "summary": "Get rule suggestions",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/validate/compliance": {
      "post": {
        "operationId": "ValidateSystemCompliance",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "set delay of asynchronous response HTTP(202); range [1s - compliance-api-timeout].",
            "in": "query",
            "name": "asyncdelay",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "get asynchronous response; see HTTP(202) Location parameter.",
            "in": "query",
            "name": "asyncresponse",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set to 'latest', get most recent cached results for specified system.",
            "in": "query",
            "name": "interval",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsComplianceRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsComplianceResponse"
                }
              }
            },
            "description": "OK"
          },
          "202": {
            "description": "Accepted"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Validate system compliance",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/validate/compliance/{cursor}": {
      "get": {
        "operationId": "GetNextPageOfSystemComplianceViolations",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "paging cursor obtained from previous calls",
            "in": "path",
            "name": "cursor",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          },
          {
            "description": "maximum number of violations to return",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsComplianceResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Get next page of system compliance violations",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/systems/{system}/validate/tests": {
      "post": {
        "operationId": "ValidateSystemTests",
        "parameters": [
          {
            "description": "system ID",
            "in": "path",
            "name": "system",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/systems.v1.SystemsTestsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/systems.v1.SystemsTestsResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Validate system unit tests",
        "tags": [
          "systems"
        ]
      }
    },
    "/v1/timeseries/advice": {
      "post": {
        "operationId": "HandleAdvice",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle advice",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/decision": {
      "post": {
        "operationId": "HandleDecision",
        "parameters": [
          {
            "description": "filter out decisions from aggregation (supported options: [billing])",
            "in": "query",
            "name": "filter",
            "schema": {
              "enum": [
                "billing"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle decision",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/deny": {
      "post": {
        "operationId": "HandleDeny",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle deny",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/error": {
      "post": {
        "operationId": "HandleError",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle error",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/latency": {
      "post": {
        "operationId": "HandleLatency",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle latency",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/metrics": {
      "get": {
        "operationId": "HandleTimeseriesMetrics",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "summary": "Handle timeseries metrics",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/report/monthly": {
      "get": {
        "operationId": "HandleTimeseriesReportMonthly",
        "parameters": [
          {
            "description": "if set, a report is generated for a month in this year (month must be specified)",
            "in": "query",
            "name": "year",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "if set, starts the report is generate for this month (year must be specified)",
            "in": "query",
            "name": "month",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "if set, only returns decision counts related to the system",
            "in": "query",
            "name": "system_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesYearlyReportResult"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Handle timeseries report",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/report/yearly": {
      "get": {
        "operationId": "HandleTimeseriesReportYearly",
        "parameters": [
          {
            "description": "if set, starts the yearly report in this year (month must be specified)",
            "in": "query",
            "name": "year",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "if set, starts the yearly report on this month (year must be specified)",
            "in": "query",
            "name": "month",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "if set, only returns decision counts related to the system",
            "in": "query",
            "name": "system_id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesYearlyReportResult"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Handle timeseries report",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/unknown": {
      "post": {
        "operationId": "HandleUnknown",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle unknown",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/usage": {
      "post": {
        "operationId": "HandleUsage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsagePostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsagePostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle usage",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/timeseries/violation": {
      "post": {
        "operationId": "HandleViolation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Handle violation",
        "tags": [
          "timeseries"
        ]
      }
    },
    "/v1/tokens": {
      "get": {
        "operationId": "ListTokens",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokens.v1.TokensListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List tokens",
        "tags": [
          "tokens"
        ]
      }
    },
    "/v1/tokens/{tokenId}": {
      "delete": {
        "operationId": "RevokeToken",
        "parameters": [
          {
            "description": "token ID",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokens.v1.TokensDeleteResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Revoke token",
        "tags": [
          "tokens"
        ]
      },
      "get": {
        "operationId": "GetToken",
        "parameters": [
          {
            "description": "token ID",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokens.v1.TokensGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get token",
        "tags": [
          "tokens"
        ]
      },
      "put": {
        "description": "If If-None-Match header is set to *, tries to create a token, otherwise will try to either update or create depending on whether an unexpired token with that ID already exists. Token creation errors with a 409 code if an unexpired one already exists, on success returns the token secret (valid for the TTL whose default value is ~10 years). Token updates return nothing unless `regenerate` is true, in which case it returns the new secret. WARNING: If allow_path_patterns is unset or an empty list, all paths are allowed.",
        "operationId": "CreateToken",
        "parameters": [
          {
            "description": "token ID",
            "in": "path",
            "name": "tokenId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tokens.v1.TokensPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokens.v1.TokensPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Token already exists"
          }
        },
        "summary": "Create or update a token",
        "tags": [
          "tokens"
        ]
      }
    },
    "/v1/users": {
      "get": {
        "operationId": "ListUsers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users.v1.UsersListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List users",
        "tags": [
          "users"
        ]
      }
    },
    "/v1/users/{userId}": {
      "delete": {
        "operationId": "DeleteUser",
        "parameters": [
          {
            "description": "user ID",
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users.v1.UsersDeleteResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Delete user",
        "tags": [
          "users"
        ]
      },
      "get": {
        "operationId": "GetUser",
        "parameters": [
          {
            "description": "user ID",
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users.v1.UsersGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get user",
        "tags": [
          "users"
        ]
      },
      "put": {
        "operationId": "CreateUpdateUser",
        "parameters": [
          {
            "description": "user ID",
            "in": "path",
            "name": "userId",
            "required": true,
            "schema": {
              "pattern": ".+",
              "type": "string"
            }
          },
          {
            "description": "if set to '*' then the request fill fail if the user already exists",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/users.v1.UsersPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users.v1.UsersPutResponse"
                }
              }
            },
            "description": "OK"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/users.v1.UsersPutResponse"
                }
              }
            },
            "description": "User already exists"
          }
        },
        "summary": "Create/update user",
        "tags": [
          "users"
        ]
      }
    },
    "/v1/workspace": {
      "get": {
        "operationId": "GetWorkspace",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.WorkspaceGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not found"
          }
        },
        "summary": "Get workspace",
        "tags": [
          "workspace"
        ]
      },
      "patch": {
        "description": "Patches workspace configuration",
        "operationId": "PatchWorkspace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.WorkspacePatchRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.WorkspacePutResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Patch workspace configuration. Similar to PUT but keeps current values for the top level fields",
        "tags": [
          "workspace"
        ]
      },
      "put": {
        "description": "Updates workspace configuration",
        "operationId": "UpdateWorkspace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.WorkspacePutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.WorkspacePutResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Update workspace",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/aws/config": {
      "get": {
        "operationId": "GetDasARN",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.DasCallerIdConfigResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not found"
          }
        },
        "summary": "Get DAS ARN",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/kafka/verify-config": {
      "post": {
        "description": "Verifies that the Kafka topic can be accessed with the provided credentials.",
        "operationId": "KafkaVerifyConfig",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.KafkaConfig"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.KafkaVerifyResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Kafka connectivity test",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/regions/{storagesvc}": {
      "get": {
        "description": "Get list of valid regions for S3 integration type",
        "operationId": "GetRegions",
        "parameters": [
          {
            "description": "storagesvc id",
            "in": "path",
            "name": "storagesvc",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.GetRegionResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not found"
          }
        },
        "summary": "Get S3 regions list",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/rotate-key": {
      "post": {
        "operationId": "RotateMTK",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.RotateKeyRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.S3VerifyResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Rotate master tenant key",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/s3-config": {
      "get": {
        "deprecated": true,
        "operationId": "GetS3Config",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.S3ConfigGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not found"
          }
        },
        "summary": "Get S3 decision configuration",
        "tags": [
          "workspace"
        ]
      },
      "put": {
        "deprecated": true,
        "operationId": "UpdateS3Config",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.S3ConfigPutRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.WorkspacePutResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Update S3 decision configuration",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/s3/verify-config": {
      "post": {
        "description": "Verifies that the S3 bucket can be accessed with the provided credentials. Creates styra_test.json file",
        "operationId": "S3VerifyConfig",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/workspace.v1.S3Config"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/workspace.v1.S3VerifyResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "S3 connectivity test",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/source-control/verify-config": {
      "post": {
        "description": "Verifies that the repository can be accessed with the provided credentials",
        "operationId": "SourceControlVerifyConfigWorkspace",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.VerifyConfigRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.VerifyConfigResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Verify git access",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/{id}/branch": {
      "delete": {
        "operationId": "DeleteUserBranchWorkspace",
        "parameters": [
          {
            "description": "workspace id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.DeleteBranchResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete a user-owned branch",
        "tags": [
          "workspace"
        ]
      },
      "get": {
        "description": "Gets the list of files for the branch that the Styra DAS creates when modifying rego in the Styra DAS UI and pushing the changes to GitHub in a branch for review.",
        "operationId": "GetSourceControlFilesBranchWorkspace",
        "parameters": [
          {
            "description": "workspace id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFileChangesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in Styra DAS-created branch.",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/{id}/commits": {
      "post": {
        "description": "Commit files to source control associated with a workspace",
        "operationId": "CommitFilesToSourceControlWorkspace",
        "parameters": [
          {
            "description": "workspace id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/git.v1.CommitInput"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.PostCommitResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Commit files to workspace source control",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v1/workspace/{id}/master": {
      "get": {
        "description": "Gets the list of files in the currently chosen branch.",
        "operationId": "GetSourceControlFilesMasterWorkspace",
        "parameters": [
          {
            "description": "workspace id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/git.v1.GetFilesResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "List files in current branch.",
        "tags": [
          "workspace"
        ]
      }
    },
    "/v2/activity": {
      "get": {
        "operationId": "SearchActivity",
        "parameters": [
          {
            "description": "continue from cursor position of previous query",
            "in": "query",
            "name": "cursor",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "minimum request time",
            "in": "query",
            "name": "start_time",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "maximum request time",
            "in": "query",
            "name": "end_time",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "search query",
            "in": "query",
            "name": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "maximum number of activity records to return",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "filter response to given activity class",
            "in": "query",
            "name": "class",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "filter by outcome type. One of (all, allowed, denied, error)",
            "in": "query",
            "name": "outcome",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "ASC, DESC (default)",
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "client time zone offset e.g. -07:00, +3:00, Z. Local time expressions in query are adjusted with this offset",
            "in": "query",
            "name": "default_timezone",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "return only essential decision fields",
            "in": "query",
            "name": "compact",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity.v2.ActivitySearchResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Retrieve activity records",
        "tags": [
          "activity-v2"
        ]
      }
    },
    "/v2/activity/{id}": {
      "get": {
        "operationId": "GetActivity",
        "parameters": [
          {
            "description": "request ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/activity.v2.ActivityGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          }
        },
        "summary": "Retrieve activity record for given request UD",
        "tags": [
          "activity-v2"
        ]
      }
    },
    "/v2/authz/rolebindings": {
      "get": {
        "operationId": "ListRoleBindings.v2",
        "parameters": [
          {
            "description": "if set returns only rolebindings involving the specified resource kind (if supplied multiple times will return rolebindings that match any of the specified resource kinds)",
            "in": "query",
            "name": "resource_kind",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only rolebindings involving the specified resource id (if supplied multiple times will return rolebindings that match any of the specified resource ids)",
            "in": "query",
            "name": "resource_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only rolebindings involving the specified role id (if supplied multiple times will return rolebindings that match any of the specified role ids)",
            "in": "query",
            "name": "role_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only rolebindings involving the specified subject kind (if supplied multiple times will return rolebindings that match any of the specified subject kinds)",
            "in": "query",
            "name": "subject_kind",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set returns only rolebindings involving the specified subject id (if supplied multiple times will return rolebindings that match any of the specified subject ids)",
            "in": "query",
            "name": "subject_id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if set to 'true', returns only internal rolebindings",
            "in": "query",
            "name": "internal",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "maximum number of items to return. If no limit is specified, the default is to return all results.",
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "controls the starting point within the list of items. Note that the first item is retrieved by setting a zero offset.",
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List role bindings",
        "tags": [
          "authz"
        ]
      },
      "post": {
        "operationId": "CreateRoleBinding",
        "parameters": [
          {
            "description": "if set to '*', will not update existing rolebinding",
            "in": "header",
            "name": "If-None-Match",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/authz.v2.RoleBindingsPostRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Conflict"
          }
        },
        "summary": "Create or update rolebinding",
        "tags": [
          "authz"
        ]
      }
    },
    "/v2/authz/rolebindings/{id}": {
      "delete": {
        "operationId": "DeleteRoleBinding.v2",
        "parameters": [
          {
            "description": "if set to '*', will return success if not found",
            "in": "header",
            "name": "If-Match",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "rolebinding ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsDeleteResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete rolebinding",
        "tags": [
          "authz"
        ]
      },
      "get": {
        "operationId": "GetRoleBinding.v2",
        "parameters": [
          {
            "description": "rolebinding ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsGetResponse"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Get rolebinding",
        "tags": [
          "authz"
        ]
      }
    },
    "/v2/authz/rolebindings/{id}/subjects": {
      "delete": {
        "operationId": "DeleteRoleBindingSubjects",
        "parameters": [
          {
            "description": "rolebinding ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/authz.v2.RoleBindingsDeleteSubjectsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsDeleteSubjectsResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Delete rolebinding subjects",
        "tags": [
          "authz"
        ]
      },
      "post": {
        "operationId": "UpdateRoleBindingSubjects",
        "parameters": [
          {
            "description": "rolebinding ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/authz.v2.RoleBindingsPostSubjectsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostSubjectsResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Update rolebinding subjects",
        "tags": [
          "authz"
        ]
      },
      "put": {
        "operationId": "MergeRoleBindingSubjects",
        "parameters": [
          {
            "description": "rolebinding ID",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "pattern": ".*",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/authz.v2.RoleBindingsPutSubjectsRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPutSubjectsResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RoleBindingsPostResponse"
                }
              }
            },
            "description": "Invalid Parameter"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/meta.v1.ErrorResponse"
                }
              }
            },
            "description": "Not Found"
          }
        },
        "summary": "Merge rolebinding subjects",
        "tags": [
          "authz"
        ]
      }
    },
    "/v2/authz/roles": {
      "get": {
        "operationId": "ListRoles",
        "parameters": [
          {
            "description": "if set returns only roles applicable to specific resource kind",
            "in": "query",
            "name": "resource_kind",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/authz.v2.RolesListResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "List roles",
        "tags": [
          "authz"
        ]
      }
    },
    "/v2/logreplay": {
      "post": {
        "operationId": "RunLogReplayV2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/logreplay.v2.ReplayRequest"
              }
            }
          },
          "required": true,
          "x-originalParamName": "body"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/logreplay.v1.ReplayResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Run log-replay",
        "tags": [
          "logreplay-v2"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://TENANT.styra.com/"
    }
  ],
  "tags": [
    {
      "description": "Activity log",
      "name": "activity"
    },
    {
      "description": "Activity log",
      "name": "activity-v2"
    },
    {
      "description": "Agent statuses API",
      "name": "agents"
    },
    {
      "description": "Authz management",
      "name": "authz"
    },
    {
      "description": "An api for executing terraform plans.",
      "name": "blueprints"
    },
    {
      "description": "Policy Bundles",
      "name": "bundles"
    },
    {
      "description": "Data read/write",
      "name": "data"
    },
    {
      "description": "Data Sources Management",
      "name": "datasources"
    },
    {
      "description": "analysis",
      "name": "decisions"
    },
    {
      "description": "Identity Providers management",
      "name": "identity-providers"
    },
    {
      "description": "User invitations",
      "name": "invitations"
    },
    {
      "description": "API to create and manage libraries",
      "name": "libraries"
    },
    {
      "description": "`log-replay` is a service that re-evaluates past decision logs in order to estimate what would change if one of the policies\nwould be different. `log-replay` is used as an analysis tool to analyze the impact of a policy change.\n",
      "name": "logreplay"
    },
    {
      "description": "LogReplay Service v2",
      "name": "logreplay-v2"
    },
    {
      "description": "OPA decision logs API",
      "name": "logs"
    },
    {
      "description": "The api for mock opas.",
      "name": "mock/opa"
    },
    {
      "description": "Notification Integration",
      "name": "notifications"
    },
    {
      "description": "OpenAPI Specification",
      "name": "openapi"
    },
    {
      "description": "Passwords strength and forgotten password request email and reset",
      "name": "passwords"
    },
    {
      "description": "Policy management",
      "name": "policies"
    },
    {
      "description": "Rego",
      "name": "rego"
    },
    {
      "description": "manages relay-clients",
      "name": "relay-server"
    },
    {
      "description": "Secrets Management",
      "name": "secrets"
    },
    {
      "description": "Passwords strength and forgotten password requests",
      "name": "signup-passwords"
    },
    {
      "description": "Stacks management",
      "name": "stacks"
    },
    {
      "description": "OPA statuses API",
      "name": "status"
    },
    {
      "description": "Systems management",
      "name": "systems"
    },
    {
      "description": "API to manage Terraform Run Task integration",
      "name": "terraform-integration"
    },
    {
      "description": "Timeseries",
      "name": "timeseries"
    },
    {
      "description": "API tokens management",
      "name": "tokens"
    },
    {
      "description": "User management",
      "name": "users"
    },
    {
      "description": "Workspace management",
      "name": "workspace"
    }
  ]
}
