components:
  schemas:
    .attributes:
      properties:
        message:
          type: string
        status:
          type: string
        url:
          type: string
      required:
        - status
        - message
        - url
    .data:
      properties:
        attributes:
          $ref: '#/components/schemas/.attributes'
        type:
          type: string
      required:
        - type
        - attributes
    .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:
        - request
        - response
        - duration
    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:
        - id
        - host
        - 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:
        - timestamp
        - status_code
    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.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
          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:
        Decision:
          type: string
        processed:
          format: date-time
          type: string
      required:
        - Decision
    analysis.v1.LogEntry:
      properties:
        bundles:
          additionalProperties:
            $ref: '#/components/schemas/logs.BundleInfoV1'
          description: configured bundles
          type: object
        decision_id:
          description: unique decision ID
          type: string
        erased:
          description: erased fields
          items:
            type: string
          type: array
        error:
          $ref: '#/components/schemas/analysis.v1.LogEntry.error'
        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
        path:
          description: evaluated path
          type: string
        query:
          description: ad-hoc query
          type: string
        req_id:
          description: request ID
          format: integer
          type: integer
        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
    analysis.v1.LogEntry.error: {}
    analysis.v1.LogEntry.input: {}
    analysis.v1.LogEntry.nd_builtin_cache:
      type: object
    analysis.v1.LogEntry.result: {}
    authz.v1.CheckPermissionInput:
      properties:
        action:
          type: string
        body:
          type: object
        check_option:
          type: string
        operation:
          type: string
        path:
          type: string
      required:
        - check_option
        - operation
        - action
        - path
        - body
    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:
        - check_option
        - operation
        - path
        - allowed
        - eval_error
    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:
        - id
        - description
        - subjects
        - role_name
        - metadata
    authz.v1.RoleBindingParameters:
      properties:
        description:
          type: string
        id:
          type: string
        role_name:
          type: string
        subjects:
          items:
            type: string
          type: array
      required:
        - id
        - description
        - subjects
        - role_name
    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:
        - id
        - description
        - subjects
        - role_name
    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:
        - kind
        - id
    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:
        - resource_filter
        - role_id
        - subjects
        - id
        - metadata
    authz.v2.RoleBindingParameters:
      properties:
        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.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:
        request_id:
          type: string
        rolebindings:
          items:
            $ref: '#/components/schemas/authz.v2.RoleBindingConfig'
          type: array
      required:
        - 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
        - resource_kind
        - inherit_roles
        - metadata
    authz.v2.RoleParameters:
      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
        resource_kind:
          description: resource type e.g., system
          type: string
      required:
        - id
        - resource_kind
        - inherit_roles
    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:
        - id
        - repo
        - ref
        - commit
        - path
        - timestamp
        - roots
    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'
        neo4j.query:
          $ref: '#/components/schemas/data.v1.MocksNeo4jQuery'
        opa.runtime:
          $ref: '#/components/schemas/data.v1.MocksOPARuntime'
        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'
        neo4j.query:
          $ref: '#/components/schemas/data.v1.MocksNeo4jQueryResponse'
        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'
      required:
        - result
    data.v1.DataResponse.result: {}
    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:
        - table
        - key
        - region
        - result
    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:
        - table
        - key_condition_expression
        - region
        - result
    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:
        - table
        - key
        - region
    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:
        - table
        - key_condition_expression
        - region
    data.v1.MocksHttpData:
      properties:
        method:
          description: request method
          type: string
        result:
          description: mock json result
          type: object
        url:
          description: request URL
          type: string
      required:
        - url
        - method
        - result
    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:
        - uri
        - database
        - collection
        - filter
        - options
        - result
    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:
        - uri
        - database
        - collection
        - filter
        - options
        - result
    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:
        - database
        - collection
        - 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:
        - database
        - collection
        - filter
        - options
        - uri
    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:
        - uri
        - query
        - parameters
        - result
    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:
        - uri
        - query
        - parameters
    data.v1.MocksOPARuntime:
      properties:
        result:
          description: mock json result
          type: object
      required:
        - result
    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:
        - db
        - command
        - addr
        - args
        - 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
        - db
        - query
        - args
    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:
        - driver
        - data_source_name
        - query
        - args
        - 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:
        - driver
        - data_source_name
        - query
        - args
    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:
        - region
        - credentials
      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`
                <br />
                A Data Source that retrieves the data about AWS IAM deployments.
          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`

                <br />

                A Data Source that downloads a rego bundle in `.tar.gz` archive
                format from a GCS bucket.
          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`

                <br />

                A Data Source that reads files with `.json`, `.yaml`, or `.xml`
                extensions from a GCS bucket.
          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`

                <br />

                A Data Source that retrieves the blame index for the HEAD of the
                configured branch.
            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`

                <br />

                A Data Source that reads files with `.json`, `.yaml`, or `.xml`
                extensions from a Git repository.
            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`

                <br />

                A Data Source that downloads a rego bundle in `.tar.gz` archive
                format from a Git repository.
            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`

                <br />

                A Data Source that accesses data from an external server through
                a URL.
            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
            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-----
        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`

                <br />

                A Data Source that retrieves the state of all Kubernetes
                resources.
            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`
                <br />
                A Data Source that reads data from a configured LDAP service.
            credentials:
              description: Secret ID with credentials
              type: string
            search:
              description: |
                Search Request.
                Documentation: https://ldapwiki.com/wiki/SearchRequest
              properties:
                attributes:
                  description: |
                    Search attribute selection.
                    Documentation: https://ldapwiki.com/wiki/AttributeSelection
                  items:
                    type: string
                  type: array
                base_DN:
                  description: |
                    Search Base DN.
                    Documentation: https://ldapwiki.com/wiki/BaseDN
                  type: string
                deref:
                  default: never
                  description: >
                    Search dereference policy.

                    Documentation:
                    https://ldapwiki.com/wiki/Dereference%20Policy
                  enum:
                    - never
                    - searching
                    - finding
                    - always
                  type: string
                filter:
                  description: >
                    Search filter.

                    Documentation:
                    https://ldapwiki.com/wiki/LDAP%20SearchFilters

                    Examples: https://ldapwiki.com/wiki/LDAP%20Query%20Examples
                  type: string
                page_size:
                  description: |
                    Search page size.
                    Documentation: https://ldapwiki.com/wiki/MaxPageSize
                  maximum: 4294967295
                  minimum: 0
                  type: integer
                scope:
                  default: whole-subtree
                  description: >
                    Search scope.

                    Documentation:
                    https://ldapwiki.com/wiki/LDAP%20Search%20Scopes
                  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`

                <br />

                A Data Source that opens an endpoint for writing data in JSON
                format.
            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`

                <br />

                A Data Source that downloads a rego bundle in `.tar.gz` archive
                format from an Amazon S3 bucket.
          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`

                <br />

                A Data Source that reads files with `.json`, `.yaml`, or `.xml`
                extensions from an Amazon S3 bucket.
          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`

                <br />

                A Data Source that reads users, groups, roles, and applications
                from Okta services.
            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
            - okta_client_id
            - okta_client_secret
          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
        - email
        - message
        - files
        - files_to_delete
        - branch
    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
        - message
        - files
        - files_to_delete
    git.v1.DeleteBranchResponse:
      properties:
        request_id:
          type: string
    git.v1.GetFilesResponse:
      properties:
        request_id:
          type: string
        result:
          $ref: '#/components/schemas/git.v1.RepoFiles'
      required:
        - result
    git.v1.GitCommitPolicyMetadata:
      properties:
        commit:
          type: string
        id:
          type: string
        path:
          type: string
        ref:
          type: string
        repo:
          type: string
        timestamp:
          format: date-time
          type: string
      required:
        - id
        - repo
        - ref
        - commit
        - path
        - timestamp
    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:
        - url
        - reference
        - commit
        - credentials
        - path
    git.v1.PostCommitResponse:
      properties:
        request_id:
          type: string
        result:
          $ref: '#/components/schemas/git.v1.Commit'
      required:
        - result
    git.v1.RepoFiles:
      properties:
        branch:
          type: string
        deleted_files:
          items:
            type: string
          type: array
        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:
        - private_key
        - passphrase
    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:
        - url
        - reference
        - commit
        - credentials
        - path
        - sha
    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:
        - id
        - commit
        - credentials
        - path
        - url
        - reference
    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
        client_id:
          type: string
        client_secret:
          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
        proxy_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:
        - id
        - enabled
        - type
        - jit
        - allowed_domains
        - unique_claim
        - issuer_url
        - auth_url
        - token_url
        - user_info_url
        - proxy_url
        - client_id
        - client_secret
        - response_mode
        - scopes
        - metadata
        - key_certificate
        - email_attribute
        - allow_idp_initiated
    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
        client_id:
          type: string
        client_secret:
          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
        proxy_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:
        - id
        - enabled
        - type
        - jit
        - allowed_domains
        - unique_claim
        - issuer_url
        - auth_url
        - token_url
        - user_info_url
        - proxy_url
        - client_id
        - client_secret
        - response_mode
        - scopes
        - metadata
        - key_certificate
        - email_attribute
        - allow_idp_initiated
    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
        client_id:
          type: string
        client_secret:
          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
        proxy_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:
        - id
        - enabled
        - type
        - jit
        - allowed_domains
        - unique_claim
        - issuer_url
        - auth_url
        - token_url
        - user_info_url
        - proxy_url
        - client_id
        - client_secret
        - response_mode
        - scopes
        - metadata
        - key_certificate
        - email_attribute
        - allow_idp_initiated
    identity-providers.v1.ProvidersPutResponse:
      properties:
        request_id:
          type: string
    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_token
        - terraform_org
        - terraform_run_task_domain
    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:
        - id
        - expiration
    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:
        - user_id
        - roles
    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:
        - user_id
        - password
    invitations.v1.InvitationsPutResponse:
      properties:
        request_id:
          type: string
    json.JsonPatchSpec:
      type: object
    keys.Config:
      properties:
        algorithm:
          type: string
        key:
          type: string
        private_key:
          type: string
        scope:
          type: string
      required:
        - key
        - private_key
        - algorithm
        - 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:
        - id
        - description
        - 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:
        - read_only
        - id
        - description
        - policies
        - datasources
    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
    logreplay.v1.EntryReplayResult:
      properties:
        bundles:
          additionalProperties:
            $ref: '#/components/schemas/logs.BundleInfoV1'
          description: configured bundles
          type: object
        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
        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
    logreplay.v1.EntryReplayResult.new_result: {}
    logreplay.v1.ReplayAnalyzerStats:
      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_observed:
          description: >-
            number of decision batches picked by the analyzers (<=
            batches_downloaded)
          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:
        - batches_observed
        - batches_analyzed
        - entries_observed
        - entries_evaluated
        - entries_scheduled
        - entries_failed
        - analysis_errors
        - results_changed
    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:
            $ref: '#/components/schemas/json.JsonPatchSpec'
          type: array
        decision_patches:
          description: list of JSON Patches to apply to the decisions before they evaluated
          items:
            $ref: '#/components/schemas/json.JsonPatchSpec'
          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.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:
        - started
        - samples
        - stats
        - duration
        - analyzed_batches
    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:
        - batches_analyzed
        - entries_observed
        - entries_evaluated
        - entries_scheduled
        - entries_failed
        - analysis_errors
        - results_changed
        - batches_observed
        - batches_downloaded
        - batches_download_errors
        - batches_from_cache
        - batches_scheduled
        - batches_skipped
    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:
            $ref: '#/components/schemas/json.JsonPatchSpec'
          type: array
        policy:
          $ref: '#/components/schemas/logreplay.v2.PolicyRef'
    logreplay.v2.DraftSpec.contents: {}
    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:
            $ref: '#/components/schemas/json.JsonPatchSpec'
          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
    logs.BundleInfoV1:
      properties:
        revision:
          type: string
    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:
        - id
        - system_id
        - expires
        - metadata
    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:
        - system_id
        - duration
    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:
        - warning
        - suggestions
    passwords.v1.PasswordResetRequest:
      properties:
        password:
          type: string
        user_id:
          type: string
      required:
        - user_id
        - password
    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:
        - score
        - min
        - max
        - pass
        - cracktime
        - cracktime_display
    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:
        - total
        - allow
        - deny
        - enforce
        - monitor
        - ignore
        - notify
        - test
        - other
    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
        - name
        - id
        - metadata
    secrets.v1.SecretBase:
      properties:
        description:
          type: string
        name:
          type: string
      required:
        - name
        - description
    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:
        - name
        - description
        - 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:
        - output
        - errors
    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:
        - type
        - description
        - read_only
        - name
        - id
        - policies
        - metadata
        - status
    stacks.v1.StackParameters:
      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:
        - name
        - type
        - description
        - read_only
    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:
            $ref: '#/components/schemas/stacks.v1.StacksComplianceRequest.group_by'
          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.StacksComplianceRequest.group_by:
      items:
        type: string
      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:
        - name
        - type
        - description
        - read_only
    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:
        - name
        - type
        - description
        - read_only
    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.AWSCredentials:
      properties:
        access_keys:
          description: >-
            access key id and secret access key are looked under the key
            <name>/<access_keys>
          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:
        - waiting
        - errors
    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:
        - endpoint
        - api_version
        - resource
        - object_id
        - client_id
        - mi_res_id
    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:
        - id
        - version
        - size
        - active
        - created_at
        - revision
        - revision_digest
        - download_url
        - digest
        - contents_digest
    systems.v1.BundleActivation:
      properties:
        id:
          type: string
        revision:
          type: string
        version:
          format: int64
          type: integer
      required:
        - id
        - version
        - revision
    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
        - revision_digest
        - id
        - size
        - created_at
        - revision
        - version
        - contents_digest
        - download_url
        - digest
    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:
        - region
        - bucket
        - discovery_path
        - policy_path
        - context_path
    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:
        - size
        - download_url
        - digest
    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.ComplianceParameters:
      properties:
        extended:
          description: >-
            run extended compliance validation that is specific for the
            system/stack type
          type: boolean
        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.ComplianceValidation:
      properties:
        all:
          items:
            $ref: '#/components/schemas/systems.v1.ComplianceValidation.all'
          type: array
        all_count:
          format: int32
          type: integer
        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
        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:
        - id
        - category
    systems.v1.DeploymentCommand:
      properties:
        action:
          description: command text
          type: string
        title:
          description: command title
          type: string
      required:
        - title
        - action
    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
        - to
        - migrated_at
        - initiated_by
        - initiating_user
    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:
        - grant_type
        - token_url
        - client_id
        - client_secret
        - signing_key
        - thumbprint
        - additional_claims
        - include_jti_claim
    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:
        - id
        - type
        - enforcement
    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.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.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
        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 (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:
        - type
        - name
        - id
        - policies
        - authz
        - metadata
        - status
    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.SystemParameters:
      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
        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 (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.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:
            $ref: '#/components/schemas/systems.v1.SystemsComplianceRequest.group_by'
          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.SystemsComplianceRequest.group_by:
      items:
        type: string
      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:
        request_id:
          type: string
        result:
          items:
            $ref: '#/components/schemas/systems.v1.SystemConfig'
          type: array
      required:
        - 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
        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 (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:
        - primary
        - force
    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
        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 (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:
          type: string
      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: string
        location:
          type: string
        name:
          type: string
        package:
          type: string
        presence_changed:
          type: boolean
      required:
        - location
        - package
        - name
        - fail
        - duration
    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
    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:
        - allow
        - deny
        - error
        - unknown
        - advice
        - decisions
    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:
          format: int64
          type: integer
        stack:
          type: string
        start_time:
          format: date-time
          type: string
        system:
          type: string
      required:
        - stack
        - system
        - policy
        - resolution
        - data_kind
        - start_time
        - end_time
    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
        - node_count
        - decision_rate
    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:
        - system
        - start_time
        - end_time
        - resolution
        - latest
    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:
        - month
        - year
        - aggregations
    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:
        - id
        - description
        - ttl
        - allow_path_patterns
        - metadata
    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:
        - description
        - allow_path_patterns
        - 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_type
        - resource_id
        - 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.UserBase:
      properties:
        enabled:
          type: boolean
        roles:
          items:
            type: string
          type: array
      required:
        - enabled
    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:
        das_trust_role:
          $ref: '#/components/schemas/workspace.v1.TrustRole'
        request_id:
          type: string
        result:
          type: string
      required:
        - result
        - das_trust_role
    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:
        - token_endpoint
        - client_id
        - scopes
    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
        - topic
        - required_acks
    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.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:
        - url
        - region
    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:
        - Effect
        - Principal
        - Action
    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:
        - Version
        - Statement
    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.WorkspaceParameters:
      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.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.


    Access to the APIs requires authentication that should be provided as an
    Authorization HTTP header including a Styra DAS-issued token:


    `Authorization: Bearer <YOURTOKENHERE>`


    To 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: >-
        At most 256 entries returned per request. 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. 

            The units KB, MB and etc can be used.

            Example: 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. 

            The units KB, MB and etc can be used.

            Example: 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.
            Download preview data as data.json file.
          in: query
          name: download
          schema:
            default: false
            type: boolean
        - description: >-
            This is part of preview workflow.

            Returns '413 Payload Too Large' response if the body size is greater
            than given limit. 

            The units KB, MB and etc can be used.

            Example: 10 MB; 28 kilobytes; 2000
          in: query
          name: limit
          schema:
            type: string
      requestBody:
        content:
          '*/*':
            examples:
              aws/ecr:
                value:
                  category: aws/ecr
                  credentials: aws_creds
                  on_premises: false
                  region: us-east-1
              aws/s3:
                value:
                  bucket: aws://foo
                  category: aws/s3
                  credentials: s3_creds
                  endpoint: https://s3.example.com
                  on_premises: false
                  path: bar/xyz
                  region: us-east-1
              bundle/s3:
                value:
                  bucket: aws://foo
                  category: bundle/s3
                  credentials: s3_creds
                  endpoint: https://s3.example.com
                  on_premises: false
                  path: bar/xyz
                  region: us-east-1
              git/blame:
                value:
                  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
              git/content:
                value:
                  category: git/content
                  on_premises: false
                  reference: refs/heads/main
                  ssh_credentials:
                    private_key: git_ssh_key
                  url: git@git.example.com
              git/rego:
                value:
                  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
              http:
                value:
                  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-----
                  category: http
                  headers:
                    - name: TOKEN
                      secret_id: http_token
                  on_premises: false
                  polling_interval: 60s
                  url: https://example.com
              kafka:
                value:
                  category: kafka
                  on_premises: true
                  polling_interval: 1s
                  urls:
                    - kafka://first.kafka.corp:9093
                    - kafka://second.kafka.corp:9093
              kubernetes/resources:
                value:
                  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
              ldap:
                value:
                  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
              okta:
                value:
                  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
              rest:
                value:
                  category: rest
                  content_type: application/json
            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:
          '*/*':
            examples:
              aws/ecr:
                value:
                  category: aws/ecr
                  credentials: aws_creds
                  on_premises: false
                  region: us-east-1
              aws/s3:
                value:
                  bucket: aws://foo
                  category: aws/s3
                  credentials: s3_creds
                  endpoint: https://s3.example.com
                  on_premises: false
                  path: bar/xyz
                  region: us-east-1
              bundle/s3:
                value:
                  bucket: aws://foo
                  category: bundle/s3
                  credentials: s3_creds
                  endpoint: https://s3.example.com
                  on_premises: false
                  path: bar/xyz
                  region: us-east-1
              git/blame:
                value:
                  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
              git/content:
                value:
                  category: git/content
                  on_premises: false
                  reference: refs/heads/main
                  ssh_credentials:
                    private_key: git_ssh_key
                  url: git@git.example.com
              git/rego:
                value:
                  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
              http:
                value:
                  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-----
                  category: http
                  headers:
                    - name: TOKEN
                      secret_id: http_token
                  on_premises: false
                  polling_interval: 60s
                  url: https://example.com
              kafka:
                value:
                  category: kafka
                  on_premises: true
                  polling_interval: 1s
                  urls:
                    - kafka://first.kafka.corp:9093
                    - kafka://second.kafka.corp:9093
              kubernetes/resources:
                value:
                  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
              ldap:
                value:
                  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
              okta:
                value:
                  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
              rest:
                value:
                  category: rest
                  content_type: application/json
            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/{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: >-
            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.GetFilesResponse'
          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
      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
      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.GetFilesResponse'
          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 datasources from the output
          in: query
          name: datasources
          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 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 'true' to include policy rule counts in the output
          in: query
          name: rule_counts
          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
      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.GetFilesResponse'
          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 errors/warnings from the output
          in: query
          name: errors
          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 datasources from the output
          in: query
          name: datasources
          schema:
            type: boolean
        - description: set to 'false' to omit matching_stacks from the output
          in: query
          name: stacks
          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.

        * Creating a system with given ID with type-specific related objects,
        only, if the `If-None-Match` header is set to `*`

          Example:
            ```shell
            curl -H "Authorization: Bearer <token>" \
                 -H "Styra-Tenant: <tenant>" \
                 -H "If-None-Match: *" \
                 -X PUT https://<das-id>.styra.com 
                 -d '{<request body>}'
            ```
      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
    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/s3-config:
    get:
      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:
      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.GetFilesResponse'
          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
      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

      would be different. `log-replay` is used as an analysis tool to analyze
      the impact of a policy change.
    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
