{
"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": [
"role_id",
"subjects",
"resource_filter"
]
},
"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": [
"resource_kind",
"inherit_roles",
"id",
"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": [
"repo",
"ref",
"commit",
"path",
"timestamp",
"id",
"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`\n
\nA Data Source that retrieves the data about AWS IAM deployments.\n"
}
},
"type": "object"
}
],
"example": {
"category": "aws/ecr",
"credentials": "aws_creds",
"on_premises": false,
"region": "us-east-1"
},
"title": "aws/ecr",
"x-datasource": true
},
"datasources.v1.Common": {
"properties": {
"category": {
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"default": true,
"type": "boolean"
},
"on_premises": {
"default": false,
"type": "boolean"
}
},
"required": [
"category"
],
"type": "object"
},
"datasources.v1.Config": {
"type": "object"
},
"datasources.v1.DatasourcesDeleteResponse": {
"properties": {
"request_id": {
"type": "string"
}
}
},
"datasources.v1.DatasourcesGetResponse": {
"properties": {
"request_id": {
"type": "string"
},
"result": {
"type": "object"
}
},
"required": [
"result"
]
},
"datasources.v1.DatasourcesListResponse": {
"properties": {
"request_id": {
"type": "string"
},
"result": {
"items": {
"$ref": "#/components/schemas/datasources.v1.Config"
},
"type": "array"
}
},
"required": [
"result"
]
},
"datasources.v1.DatasourcesPostResponse": {
"properties": {
"request_id": {
"type": "string"
},
"result": {
"$ref": "#/components/schemas/datasources.v1.DatasourcesPostResponse.result"
}
},
"required": [
"result"
]
},
"datasources.v1.DatasourcesPostResponse.result": {},
"datasources.v1.DatasourcesPutRequest": {
"oneOf": [
{
"$ref": "#/components/schemas/datasources.v1.AWS.ECR"
},
{
"$ref": "#/components/schemas/datasources.v1.GCS.Bundle"
},
{
"$ref": "#/components/schemas/datasources.v1.GCS.Content"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Blame"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Content"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Rego"
},
{
"$ref": "#/components/schemas/datasources.v1.HTTP"
},
{
"$ref": "#/components/schemas/datasources.v1.Kafka"
},
{
"$ref": "#/components/schemas/datasources.v1.Kubernetes.Resources"
},
{
"$ref": "#/components/schemas/datasources.v1.LDAP"
},
{
"$ref": "#/components/schemas/datasources.v1.okta"
},
{
"$ref": "#/components/schemas/datasources.v1.PolicyLibrary"
},
{
"$ref": "#/components/schemas/datasources.v1.Rest"
},
{
"$ref": "#/components/schemas/datasources.v1.S3.Bundle"
},
{
"$ref": "#/components/schemas/datasources.v1.S3.Content"
}
],
"type": "object"
},
"datasources.v1.DatasourcesPutResponse": {
"properties": {
"request_id": {
"type": "string"
},
"result": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.DatasourcesPutRequest"
},
{
"properties": {
"executed": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"metadata": {
"properties": {
"created_at": {
"format": "date-time",
"type": "string"
},
"created_by": {
"type": "string"
},
"created_through": {
"type": "string"
},
"last_modified_at": {
"format": "date-time",
"type": "string"
},
"last_modified_by": {
"type": "string"
},
"last_modified_through": {
"type": "string"
}
},
"type": "object"
},
"resources": {
"items": {
"type": "object"
},
"type": "array"
},
"status": {
"type": "object"
}
},
"type": "object"
}
]
}
},
"type": "object"
},
"datasources.v1.GCS.Bundle": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.S3.Bundle"
},
{
"properties": {
"category": {
"description": "Must be `gcs/bundle`\n
\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from a GCS bucket.\n"
}
},
"type": "object"
}
],
"title": "gcs/bundle",
"x-datasource": true
},
"datasources.v1.GCS.Content": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.S3.Content"
},
{
"properties": {
"category": {
"description": "Must be `gcs/content`\n
\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from a GCS bucket.\n"
}
},
"type": "object"
}
],
"title": "gcs/content",
"x-datasource": true
},
"datasources.v1.Git.Blame": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Common"
},
{
"properties": {
"category": {
"description": "Must be `git/blame`\n
\nA Data Source that retrieves the blame index for the HEAD of the configured branch.\n"
},
"path_regexp": {
"default": ".*",
"type": "string"
}
},
"type": "object"
}
],
"example": {
"category": "git/blame",
"on_premises": false,
"path_regexp": "^foo.+bar$",
"reference": "refs/heads/main",
"ssh_credentials": {
"private_key": "git_ssh_key"
},
"url": "https://git.example.com"
},
"title": "git/blame",
"x-datasource": true
},
"datasources.v1.Git.Common": {
"properties": {
"commit": {
"description": "Commit SHA. If set, it takes precedence over reference",
"type": "string"
},
"credentials": {
"description": "Secret ID with credentials",
"type": "string"
},
"reference": {
"default": "refs/heads/master",
"type": "string"
},
"ssh_credentials": {
"properties": {
"passphrase": {
"description": "Secret ID with passphrase",
"type": "string"
},
"private_key": {
"description": "Secret ID with private key",
"type": "string"
}
},
"required": [
"private_key"
],
"type": "object"
},
"timeout": {
"default": "60s",
"type": "string"
},
"url": {
"description": "Git URL",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"datasources.v1.Git.Content": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Common"
},
{
"properties": {
"category": {
"description": "Must be `git/content`\n
\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from a Git repository.\n"
},
"path": {
"description": "A relative path within given repository",
"type": "string"
}
},
"type": "object"
}
],
"example": {
"category": "git/content",
"on_premises": false,
"reference": "refs/heads/main",
"ssh_credentials": {
"private_key": "git_ssh_key"
},
"url": "git@git.example.com"
},
"title": "git/content",
"x-datasource": true
},
"datasources.v1.Git.Rego": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.Git.Common"
},
{
"properties": {
"category": {
"description": "Must be `git/rego`\n
\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from a Git repository.\n"
},
"path": {
"type": "string"
}
},
"type": "object"
}
],
"example": {
"category": "git/rego",
"on_premises": false,
"path": "foo/bar",
"reference": "refs/heads/main",
"ssh_credentials": {
"private_key": "git_ssh_key"
},
"url": "https://git.example.com"
},
"title": "git/rego",
"x-datasource": true
},
"datasources.v1.HTTP": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.TLSSettings"
},
{
"properties": {
"body": {
"description": "Payload in JSON format",
"type": "string"
},
"category": {
"description": "Must be `http`\n
\nA Data Source that accesses data from an external server through a URL.\n"
},
"headers": {
"items": {
"$ref": "#/components/schemas/datasources.v1.HTTP.Header"
},
"type": "array"
},
"method": {
"description": "HTTP Method, default `GET`.",
"enum": [
"GET",
"POST",
"QUERY"
],
"type": "string"
},
"raw_body": {
"description": "Base64 encoded payload",
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
],
"example": {
"ca_certificate": "-----BEGIN CERTIFICATE REQUEST----- MIIB9TCCAWACAQAwgbgxGTAXBgNVBAoMEFF1b1ZhZGlzIExpbWl0ZWQxHDAaBgNV BAsME0RvY3VtZW50IERlcGFydG1lbnQxOTA3BgNVBAMMMFdoeSBhcmUgeW91IGRl Y29kaW5nIG1lPyAgVGhpcyBpcyBvbmx5IGEgdGVzdCEhITERMA8GA1UEBwwISGFt aWx0b24xETAPBgNVBAgMCFBlbWJyb2tlMQswCQYDVQQGEwJCTTEPMA0GCSqGSIb3 DQEJARYAMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJ9WRanG/fUvcfKiGl EL4aRLjGt537mZ28UU9/3eiJeJznNSOuNLnF+hmabAu7H0LT4K7EdqfF+XUZW/2j RKRYcvOUDGF9A7OjW7UfKk1In3+6QDCi7X34RE161jqoaJjrm/T18TOKcgkkhRzE apQnIDm0Ea/HVzX/PiSOGuertwIDAQABMAsGCSqGSIb3DQEBBQOBgQBzMJdAV4QP Awel8LzGx5uMOshezF/KfP67wJ93UW+N7zXY6AwPgoLj4Kjw+WtU684JL8Dtr9FX ozakE+8p06BpxegR4BR3FMHf6p+0jQxUEAkAyb/mVgm66TyghDGC6/YkiKoZptXQ 98TwDIK/39WEB/V607As+KoYazQG8drorw== -----END CERTIFICATE REQUEST-----\n",
"category": "http",
"headers": [
{
"name": "TOKEN",
"secret_id": "http_token"
}
],
"on_premises": false,
"polling_interval": "60s",
"url": "https://example.com"
},
"title": "http",
"x-datasource": true
},
"datasources.v1.HTTP.Header": {
"properties": {
"name": {
"description": "Header's name",
"type": "string"
},
"secret_id": {
"description": "Secret ID where the Header's value is stored",
"type": "string"
},
"value": {
"description": "Header's value",
"type": "string"
}
},
"required": [
"name"
]
},
"datasources.v1.Kafka": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.TLSSettings"
},
{
"properties": {
"topic": {
"description": "Topic to consume messages from",
"type": "string"
},
"urls": {
"description": "List of brokers to connect to",
"items": {
"minItems": 1,
"type": "string"
},
"type": "array"
}
},
"required": [
"urls"
],
"type": "object"
}
],
"example": {
"category": "kafka",
"on_premises": true,
"polling_interval": "1s",
"urls": [
"kafka://first.kafka.corp:9093",
"kafka://second.kafka.corp:9093"
]
},
"title": "kafka",
"x-datasource": false
},
"datasources.v1.Kubernetes.Resources": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"properties": {
"category": {
"description": "Must be `kubernetes/resources`\n
\nA Data Source that retrieves the state of all Kubernetes resources.\n"
},
"masks": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "strip out resource properties given their relative path",
"type": "object"
},
"namespaces": {
"additionalProperties": {
"type": "boolean"
},
"description": "allows to include/exclude namespaces",
"type": "object"
},
"on_premises": {
"description": "Must be `true`"
},
"selectors": {
"additionalProperties": {
"type": "string"
},
"description": "field selectors per resource [group]",
"type": "object"
}
},
"required": [
"on_premises"
],
"type": "object"
}
],
"example": {
"category": "kubernetes/resources",
"masks": {
"argoproj.io/workflows": [
"*"
],
"pods": [
"spec.afinity",
"spec/livenessProbe",
"status",
"metadata.annotations.'kubectl.kubernetes.io/last-applied-configuration'"
]
},
"namespaces": {
"": false,
"*": false,
"nsName": true
},
"on_premises": true,
"rate_limit": 3,
"selectors": {
"ingress": "metadata.namespace==default",
"pods": "status.phase!=Running,spec.restartPolicy=Always"
}
},
"title": "kubernetes/resources",
"x-datasource": true
},
"datasources.v1.LDAP": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.TLSSettings"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"properties": {
"category": {
"description": "Must be `ldap`\n
\nA Data Source that reads data from a configured LDAP service.\n"
},
"credentials": {
"description": "Secret ID with credentials",
"type": "string"
},
"search": {
"description": "Search Request.\nDocumentation: https://ldapwiki.com/wiki/SearchRequest\n",
"properties": {
"attributes": {
"description": "Search attribute selection.\nDocumentation: https://ldapwiki.com/wiki/AttributeSelection\n",
"items": {
"type": "string"
},
"type": "array"
},
"base_DN": {
"description": "Search Base DN.\nDocumentation: https://ldapwiki.com/wiki/BaseDN\n",
"type": "string"
},
"deref": {
"default": "never",
"description": "Search dereference policy.\nDocumentation: https://ldapwiki.com/wiki/Dereference%20Policy\n",
"enum": [
"never",
"searching",
"finding",
"always"
],
"type": "string"
},
"filter": {
"description": "Search filter.\nDocumentation: https://ldapwiki.com/wiki/LDAP%20SearchFilters\nExamples: https://ldapwiki.com/wiki/LDAP%20Query%20Examples\n",
"type": "string"
},
"page_size": {
"description": "Search page size.\nDocumentation: https://ldapwiki.com/wiki/MaxPageSize\n",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
},
"scope": {
"default": "whole-subtree",
"description": "Search scope.\nDocumentation: https://ldapwiki.com/wiki/LDAP%20Search%20Scopes\n",
"enum": [
"base-object",
"single-level",
"whole-subtree"
],
"type": "string"
}
},
"required": [
"base_DN",
"filter"
],
"type": "object"
},
"urls": {
"description": "List of URLs: main + replicas",
"items": {
"minItems": 1,
"type": "string"
},
"type": "array"
}
},
"required": [
"urls"
],
"type": "object"
}
],
"example": {
"category": "ldap",
"credentials": "ldapcreds",
"on_premises": false,
"polling_interval": "60s",
"search": {
"base_DN": "dc=test,dc=styra,dc=com",
"deref": "never",
"filter": "(objectclass=*)",
"scope": "whole-subtree"
},
"urls": [
"ldaps://example.com:33636",
"ldap://example.com:33389"
]
},
"title": "ldap",
"x-datasource": true
},
"datasources.v1.ParallelismLimiter": {
"properties": {
"parallel": {
"default": 10,
"description": "the maximum level of parallelism allowed",
"type": "integer"
}
},
"type": "object"
},
"datasources.v1.PolicyLibrary": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"properties": {
"category": {
"description": "Must be `policy-library`"
}
},
"type": "object"
}
],
"title": "policy-library",
"x-datasource": true
},
"datasources.v1.Poller": {
"properties": {
"polling_interval": {
"default": "30s",
"type": "string"
}
},
"type": "object"
},
"datasources.v1.RateLimiter": {
"properties": {
"rate_limit": {
"default": 3,
"description": "requests per second",
"type": "number"
}
},
"type": "object"
},
"datasources.v1.RegoFiltering": {
"properties": {
"policy_filter": {
"description": "Policy Filter (if set, then policy_query must be set as well)",
"type": "string"
},
"policy_query": {
"description": "Policy Query (if set, then policy_filter must be set as well)",
"type": "string"
}
},
"type": "object"
},
"datasources.v1.Rest": {
"allOf": [
{
"properties": {
"category": {
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"default": true,
"type": "boolean"
}
},
"required": [
"category"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Must be `rest`\n
\nA Data Source that opens an endpoint for writing data in JSON format.\n"
},
"content_type": {
"type": "string"
}
},
"type": "object"
}
],
"example": {
"category": "rest",
"content_type": "application/json"
},
"title": "rest",
"x-datasource": true
},
"datasources.v1.S3.Bundle": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.S3.Common"
},
{
"properties": {
"category": {
"description": "Must be `bundle/s3`\n
\nA Data Source that downloads a rego bundle in `.tar.gz` archive format from an Amazon S3 bucket.\n"
}
},
"required": [
"path"
],
"type": "object"
}
],
"example": {
"bucket": "aws://foo",
"category": "bundle/s3",
"credentials": "s3_creds",
"endpoint": "https://s3.example.com",
"on_premises": false,
"path": "bar/xyz",
"region": "us-east-1"
},
"title": "bundle/s3",
"x-datasource": true
},
"datasources.v1.S3.Common": {
"properties": {
"bucket": {
"description": "S3 Bucket",
"type": "string"
},
"credentials": {
"description": "Secret ID with credentials",
"type": "string"
},
"endpoint": {
"description": "Endpoint to S3 storage",
"type": "string"
},
"path": {
"description": "S3 Path within a Bucket",
"type": "string"
},
"region": {
"description": "Region",
"type": "string"
}
},
"required": [
"bucket",
"credentials"
],
"type": "object"
},
"datasources.v1.S3.Content": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RateLimiter"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"$ref": "#/components/schemas/datasources.v1.S3.Common"
},
{
"properties": {
"category": {
"description": "Must be `aws/s3`\n
\nA Data Source that reads files with `.json`, `.yaml`, or `.xml` extensions from an Amazon S3 bucket.\n"
}
},
"type": "object"
}
],
"example": {
"bucket": "aws://foo",
"category": "aws/s3",
"credentials": "s3_creds",
"endpoint": "https://s3.example.com",
"on_premises": false,
"path": "bar/xyz",
"region": "us-east-1"
},
"title": "aws/s3",
"x-datasource": true
},
"datasources.v1.TLSSettings": {
"properties": {
"ca_certificate": {
"description": "Custom root certificate",
"type": "string"
},
"mtls_certificate": {
"description": "Certificate for mTLS",
"type": "string"
},
"mtls_private_key_secret_id": {
"description": "Secret ID of Private Key for mTLS",
"type": "string"
},
"skip_tls_verification": {
"default": false,
"description": "Skip TLS verification",
"type": "boolean"
}
},
"type": "object"
},
"datasources.v1.okta": {
"allOf": [
{
"$ref": "#/components/schemas/datasources.v1.Common"
},
{
"$ref": "#/components/schemas/datasources.v1.Poller"
},
{
"$ref": "#/components/schemas/datasources.v1.RegoFiltering"
},
{
"properties": {
"category": {
"description": "Must be `okta`\n
\nA Data Source that reads users, groups, roles, and applications from Okta services.\n"
},
"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": [
"files_to_delete",
"author",
"email",
"message",
"files",
"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 /",
"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/",
"type": "string"
},
"private_key": {
"description": "PrivateKey is looked under the key private-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 /",
"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 /",
"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": [
"id",
"description",
"read_only",
"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": [
"results_changed",
"batches_observed",
"batches_analyzed",
"entries_observed",
"entries_evaluated",
"entries_scheduled",
"entries_failed",
"analysis_errors",
"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": [
"name",
"description",
"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": [
"name",
"type",
"description",
"read_only",
"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 /",
"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": [
"created_at",
"revision",
"revision_digest",
"contents_digest",
"id",
"size",
"active",
"download_url",
"digest",
"version"
]
},
"systems.v1.BundleDistributionS3Config": {
"properties": {
"access_keys": {
"description": "access key id and secret access key are looked under the key /",
"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": [
"url",
"region"
]
},
"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.\n\nAccess to the APIs requires authentication that should be provided as an Authorization HTTP header including a Styra DAS-issued token:\n\n`Authorization: Bearer `\n\nTo request a token you need to have an Styra account, and create a token via the API Tokens menu.",
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
},
"termsOfService": "https://doc-policies.s3-us-west-2.amazonaws.com/terms.html",
"title": "Styra API",
"version": "2.0.0"
},
"openapi": "3.0.3",
"paths": {
"/openapi/deprecated/{spec}/{version}": {
"get": {
"operationId": "OpenAPIDeprecated",
"parameters": [
{
"description": "OpenAPI Spec version",
"in": "path",
"name": "spec",
"required": true,
"schema": {
"pattern": "v.*",
"type": "string"
}
},
{
"description": "API version",
"in": "path",
"name": "version",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found"
}
},
"summary": "Returns a deprecated version",
"tags": [
"openapi"
]
}
},
"/openapi/v2": {
"get": {
"operationId": "OpenAPIv2",
"responses": {
"200": {
"description": "OK"
}
},
"summary": "Swagger v2 Specification",
"tags": [
"openapi"
]
}
},
"/openapi/v3": {
"get": {
"operationId": "OpenAPIv3",
"responses": {
"200": {
"description": "OK"
}
},
"summary": "OpenAPI v3 Specification",
"tags": [
"openapi"
]
}
},
"/v1/activity": {
"post": {
"description": "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\", \"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\", \"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\", \"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\", \"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 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 documentation.",
"in": "header",
"name": "If-None-Match",
"schema": {
"type": "string"
}
},
{
"description": "Kind of a bundle",
"in": "query",
"name": "kind",
"schema": {
"default": "Plain",
"enum": [
"Plain",
"BJson"
],
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/gzip": {
"schema": {
"items": {
"type": "integer"
},
"type": "array"
}
},
"application/json": {
"schema": {
"items": {
"type": "integer"
},
"type": "array"
}
}
},
"description": "OK"
},
"304": {
"description": "Not Modified"
},
"404": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get a policy bundle",
"tags": [
"bundles"
]
}
},
"/v1/data": {
"get": {
"description": "Data (whether the result of evaluating policy or the data gathered by datasources) is arranged into a tree. List the locations within the tree that data exists.",
"operationId": "ListData",
"parameters": [
{
"description": "Rego query to be executed for the documents",
"in": "query",
"name": "rego",
"schema": {
"type": "string"
}
},
{
"description": "Json Path expression to extract portions of documents",
"in": "query",
"name": "jsonpath",
"schema": {
"type": "string"
}
},
{
"description": "Only used explicitly provided policies and data. Do not load anything from DAS",
"in": "query",
"name": "sandbox",
"schema": {
"type": "boolean"
}
},
{
"description": "Enable strict Rego compilation mode",
"in": "query",
"name": "strict",
"schema": {
"type": "boolean"
}
},
{
"description": "Initial data object in JSON format",
"in": "query",
"name": "data",
"schema": {
"type": "string"
}
},
{
"description": "Download data as data.json file",
"in": "query",
"name": "download",
"schema": {
"default": false,
"type": "boolean"
}
},
{
"description": "Returns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
"in": "query",
"name": "limit",
"schema": {
"type": "string"
}
},
{
"description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See 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 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 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 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 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 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 .json file",
"in": "query",
"name": "download",
"schema": {
"default": false,
"type": "boolean"
}
},
{
"description": "Returns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
"in": "query",
"name": "limit",
"schema": {
"type": "string"
}
},
{
"description": "The server will return the requested resource, with a 200 status, only if it doesn't have an ETag matching the given ones. See 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 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 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 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 `` 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 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 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 `` to an arbitrary JSON document. This data can be read by doing `GET v1/data/`",
"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 documentation.",
"schema": {
"type": "string"
}
}
}
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
},
"413": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Request Entity Too Large"
}
},
"summary": "Publish data",
"tags": [
"data"
]
}
},
"/v1/datasources": {
"get": {
"operationId": "ListDatasources",
"parameters": [
{
"description": "Filter data source by system ID",
"in": "query",
"name": "system",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/datasources.v1.DatasourcesListResponse"
}
}
},
"description": "OK"
}
},
"summary": "List data sources",
"tags": [
"datasources"
]
}
},
"/v1/datasources/{datasource}": {
"delete": {
"operationId": "DeleteDatasource",
"parameters": [
{
"description": "Data source ID",
"in": "path",
"name": "datasource",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/datasources.v1.DatasourcesDeleteResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Delete a data source",
"tags": [
"datasources"
]
},
"get": {
"operationId": "GetDatasource",
"parameters": [
{
"description": "Data source ID",
"in": "path",
"name": "datasource",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "Execute data source",
"in": "query",
"name": "execute",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/datasources.v1.DatasourcesGetResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get a data source",
"tags": [
"datasources"
]
},
"post": {
"operationId": "ExecuteDatasource",
"parameters": [
{
"description": "Data source ID",
"in": "path",
"name": "datasource",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "Execute data source",
"in": "query",
"name": "execute",
"schema": {
"type": "boolean"
}
},
{
"description": "Preview data source",
"in": "query",
"name": "preview",
"schema": {
"type": "boolean"
}
},
{
"description": "This is part of preview workflow.\nDownload preview data as data.json file.",
"in": "query",
"name": "download",
"schema": {
"default": false,
"type": "boolean"
}
},
{
"description": "This is part of preview workflow.\nReturns '413 Payload Too Large' response if the body size is greater than given limit. \nThe units KB, MB and etc can be used.\nExample: 10 MB; 28 kilobytes; 2000",
"in": "query",
"name": "limit",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"*/*": {
"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-----\n",
"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 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-----\n",
"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 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.\n* Creating a system with given ID with type-specific related objects, only, if the `If-None-Match` header is set to `*`\n\n Example:\n ```shell\n curl -H \"Authorization: Bearer \" \\\n -H \"Styra-Tenant: \" \\\n -H \"If-None-Match: *\" \\\n -X PUT https://.styra.com \n -d '{}'\n ```\n",
"operationId": "UpdateSystem",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "if set to '*' then creates a new system with type-specific related objects",
"in": "header",
"name": "If-None-Match",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Bad Request"
}
},
"summary": "Update or create a system. Only the fields sent in the request are updated",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/agents": {
"get": {
"operationId": "GetSystemAgents",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetAgentsResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system agents",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/assets/{assettype}": {
"get": {
"operationId": "GetAsset",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "asset type",
"in": "path",
"name": "assettype",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"404": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
},
"application/x-yaml": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system asset",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/bundle-compile": {
"put": {
"operationId": "UpdateSystemBundleCompile",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutBundleCompileRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutBundleCompileResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Compile a system bundle",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/bundle-deploy": {
"get": {
"operationId": "GetSystemBundleDeploy",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetBundleDeployResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get a system bundle deployment and build status",
"tags": [
"systems"
]
},
"put": {
"operationId": "UpdateSystemBundleDeploy",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutBundleDeployRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsPutBundleDeployResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Conflict"
}
},
"summary": "Deploy a system bundle",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/bundles": {
"get": {
"description": "List system bundles, starting from the newest towards the oldest",
"operationId": "GetSystemBundles",
"parameters": [
{
"description": "if set to 'true', returns only bundles deployed in the past",
"in": "query",
"name": "past",
"schema": {
"type": "boolean"
}
},
{
"description": "if set, the newest version to return",
"in": "query",
"name": "version",
"schema": {
"type": "integer"
}
},
{
"description": "return only bundles of given type (policy, context)",
"in": "query",
"name": "type",
"schema": {
"type": "string"
}
},
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetBundlesResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "List system bundles",
"tags": [
"systems"
]
},
"post": {
"operationId": "ImportSystemBundle",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
}
},
"application/x-gzip": {
"schema": {
"$ref": "#/components/schemas/systems.v1.CopyBundleRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.PostBundleResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Import bundle from archive or another system",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/bundles/{bundle}/{version}/bundle": {
"get": {
"operationId": "GetSystemBundle",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "bundle ID",
"in": "path",
"name": "bundle",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "version #",
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "Kind of a bundle",
"in": "query",
"name": "kind",
"schema": {
"default": "Plain",
"enum": [
"Plain",
"BJson"
],
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system bundle",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/bundles/{bundle}/{version}/details": {
"get": {
"operationId": "GetSystemBundleDetails",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "bundle ID",
"in": "path",
"name": "bundle",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "version #",
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetBundleDetailsResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system bundle details",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/default-policies": {
"get": {
"operationId": "GetDefaultPolicies",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetDefaultPoliciesResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get default system policies",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/default-policies/{path}": {
"get": {
"operationId": "GetDefaultPolicy",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "policy path",
"in": "path",
"name": "path",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetDefaultPolicyResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get default system policy",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/deltabundles/{bundle}/{version}/{etag}/bundle": {
"get": {
"operationId": "GetSystemDeltaBundle",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "bundle ID",
"in": "path",
"name": "bundle",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "end version #",
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "integer"
}
},
{
"description": "start etag",
"in": "path",
"name": "etag",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"404": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system delta bundle",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/discovery": {
"get": {
"operationId": "GetOPADiscoveryConfig",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "etag",
"in": "header",
"name": "If-None-Match",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetResponse"
}
}
},
"description": "OK"
},
"304": {
"description": "Not Modified"
},
"404": {
"content": {
"application/gzip": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get the OPA discovery config for a system",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/instructions": {
"get": {
"operationId": "GetInstructions",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsGetInstructionsResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get system install/uninstall instructions",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/migrations": {
"post": {
"operationId": "MigrateSystem",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsMigrationRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"202": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ResponseHeader"
}
}
},
"description": "Accepted"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Bad Request"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Migrate a system from one system type to another",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/suggestions": {
"get": {
"operationId": "RuleSuggestions",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "true to get only the stateful suggestions, false for stateless, omit for both",
"in": "query",
"name": "stateful",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsSuggestedRulesResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not available, please retry later"
}
},
"summary": "Get rule suggestions",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/validate/compliance": {
"post": {
"operationId": "ValidateSystemCompliance",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "set delay of asynchronous response HTTP(202); range [1s - compliance-api-timeout].",
"in": "query",
"name": "asyncdelay",
"schema": {
"type": "string"
}
},
{
"description": "get asynchronous response; see HTTP(202) Location parameter.",
"in": "query",
"name": "asyncresponse",
"schema": {
"type": "string"
}
},
{
"description": "if set to 'latest', get most recent cached results for specified system.",
"in": "query",
"name": "interval",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsComplianceRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsComplianceResponse"
}
}
},
"description": "OK"
},
"202": {
"description": "Accepted"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Validate system compliance",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/validate/compliance/{cursor}": {
"get": {
"operationId": "GetNextPageOfSystemComplianceViolations",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "paging cursor obtained from previous calls",
"in": "path",
"name": "cursor",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
},
{
"description": "maximum number of violations to return",
"in": "query",
"name": "limit",
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsComplianceResponse"
}
}
},
"description": "OK"
}
},
"summary": "Get next page of system compliance violations",
"tags": [
"systems"
]
}
},
"/v1/systems/{system}/validate/tests": {
"post": {
"operationId": "ValidateSystemTests",
"parameters": [
{
"description": "system ID",
"in": "path",
"name": "system",
"required": true,
"schema": {
"pattern": ".*",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsTestsRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/systems.v1.SystemsTestsResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Validate system unit tests",
"tags": [
"systems"
]
}
},
"/v1/timeseries/advice": {
"post": {
"operationId": "HandleAdvice",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle advice",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/decision": {
"post": {
"operationId": "HandleDecision",
"parameters": [
{
"description": "filter out decisions from aggregation (supported options: [billing])",
"in": "query",
"name": "filter",
"schema": {
"enum": [
"billing"
],
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle decision",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/deny": {
"post": {
"operationId": "HandleDeny",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle deny",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/error": {
"post": {
"operationId": "HandleError",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle error",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/latency": {
"post": {
"operationId": "HandleLatency",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle latency",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/metrics": {
"get": {
"operationId": "HandleTimeseriesMetrics",
"responses": {
"200": {
"description": "OK"
}
},
"summary": "Handle timeseries metrics",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/report/monthly": {
"get": {
"operationId": "HandleTimeseriesReportMonthly",
"parameters": [
{
"description": "if set, a report is generated for a month in this year (month must be specified)",
"in": "query",
"name": "year",
"schema": {
"type": "integer"
}
},
{
"description": "if set, starts the report is generate for this month (year must be specified)",
"in": "query",
"name": "month",
"schema": {
"type": "integer"
}
},
{
"description": "if set, only returns decision counts related to the system",
"in": "query",
"name": "system_id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesYearlyReportResult"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Handle timeseries report",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/report/yearly": {
"get": {
"operationId": "HandleTimeseriesReportYearly",
"parameters": [
{
"description": "if set, starts the yearly report in this year (month must be specified)",
"in": "query",
"name": "year",
"schema": {
"type": "integer"
}
},
{
"description": "if set, starts the yearly report on this month (year must be specified)",
"in": "query",
"name": "month",
"schema": {
"type": "integer"
}
},
{
"description": "if set, only returns decision counts related to the system",
"in": "query",
"name": "system_id",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesYearlyReportResult"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Handle timeseries report",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/unknown": {
"post": {
"operationId": "HandleUnknown",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle unknown",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/usage": {
"post": {
"operationId": "HandleUsage",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsagePostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesUsagePostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle usage",
"tags": [
"timeseries"
]
}
},
"/v1/timeseries/violation": {
"post": {
"operationId": "HandleViolation",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/timeseries.v1.TimeSeriesPostResponse"
}
}
},
"description": "OK"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Invalid Parameter"
}
},
"summary": "Handle violation",
"tags": [
"timeseries"
]
}
},
"/v1/tokens": {
"get": {
"operationId": "ListTokens",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/tokens.v1.TokensListResponse"
}
}
},
"description": "OK"
}
},
"summary": "List tokens",
"tags": [
"tokens"
]
}
},
"/v1/tokens/{tokenId}": {
"delete": {
"operationId": "RevokeToken",
"parameters": [
{
"description": "token ID",
"in": "path",
"name": "tokenId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/tokens.v1.TokensDeleteResponse"
}
}
},
"description": "OK"
}
},
"summary": "Revoke token",
"tags": [
"tokens"
]
},
"get": {
"operationId": "GetToken",
"parameters": [
{
"description": "token ID",
"in": "path",
"name": "tokenId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/tokens.v1.TokensGetResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get token",
"tags": [
"tokens"
]
},
"put": {
"description": "If If-None-Match header is set to *, tries to create a token, otherwise will try to either update or create depending on whether an unexpired token with that ID already exists. Token creation errors with a 409 code if an unexpired one already exists, on success returns the token secret (valid for the TTL whose default value is ~10 years). Token updates return nothing unless `regenerate` is true, in which case it returns the new secret. WARNING: If allow_path_patterns is unset or an empty list, all paths are allowed.",
"operationId": "CreateToken",
"parameters": [
{
"description": "token ID",
"in": "path",
"name": "tokenId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/tokens.v1.TokensPutRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/tokens.v1.TokensPutResponse"
}
}
},
"description": "OK"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Token already exists"
}
},
"summary": "Create or update a token",
"tags": [
"tokens"
]
}
},
"/v1/users": {
"get": {
"operationId": "ListUsers",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersListResponse"
}
}
},
"description": "OK"
}
},
"summary": "List users",
"tags": [
"users"
]
}
},
"/v1/users/{userId}": {
"delete": {
"operationId": "DeleteUser",
"parameters": [
{
"description": "user ID",
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersDeleteResponse"
}
}
},
"description": "OK"
}
},
"summary": "Delete user",
"tags": [
"users"
]
},
"get": {
"operationId": "GetUser",
"parameters": [
{
"description": "user ID",
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersGetResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not Found"
}
},
"summary": "Get user",
"tags": [
"users"
]
},
"put": {
"operationId": "CreateUpdateUser",
"parameters": [
{
"description": "user ID",
"in": "path",
"name": "userId",
"required": true,
"schema": {
"pattern": ".+",
"type": "string"
}
},
{
"description": "if set to '*' then the request fill fail if the user already exists",
"in": "header",
"name": "If-None-Match",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersPutRequest"
}
}
},
"required": true,
"x-originalParamName": "body"
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersPutResponse"
}
}
},
"description": "OK"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/users.v1.UsersPutResponse"
}
}
},
"description": "User already exists"
}
},
"summary": "Create/update user",
"tags": [
"users"
]
}
},
"/v1/workspace": {
"get": {
"operationId": "GetWorkspace",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/workspace.v1.WorkspaceGetResponse"
}
}
},
"description": "OK"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/meta.v1.ErrorResponse"
}
}
},
"description": "Not found"
}
},
"summary": "Get workspace",
"tags": [
"workspace"
]
},
"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\nwould be different. `log-replay` is used as an analysis tool to analyze the impact of a policy change.\n",
"name": "logreplay"
},
{
"description": "LogReplay Service v2",
"name": "logreplay-v2"
},
{
"description": "OPA decision logs API",
"name": "logs"
},
{
"description": "The api for mock opas.",
"name": "mock/opa"
},
{
"description": "Notification Integration",
"name": "notifications"
},
{
"description": "OpenAPI Specification",
"name": "openapi"
},
{
"description": "Passwords strength and forgotten password request email and reset",
"name": "passwords"
},
{
"description": "Policy management",
"name": "policies"
},
{
"description": "Rego",
"name": "rego"
},
{
"description": "manages relay-clients",
"name": "relay-server"
},
{
"description": "Secrets Management",
"name": "secrets"
},
{
"description": "Passwords strength and forgotten password requests",
"name": "signup-passwords"
},
{
"description": "Stacks management",
"name": "stacks"
},
{
"description": "OPA statuses API",
"name": "status"
},
{
"description": "Systems management",
"name": "systems"
},
{
"description": "API to manage Terraform Run Task integration",
"name": "terraform-integration"
},
{
"description": "Timeseries",
"name": "timeseries"
},
{
"description": "API tokens management",
"name": "tokens"
},
{
"description": "User management",
"name": "users"
},
{
"description": "Workspace management",
"name": "workspace"
}
]
}