{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/calypsoai-com/json-schema/calypsoai-com-get-project-response-schema.json",
  "title": "GetProjectResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/calypsoai-com-projects-api-openapi.yml#/components/schemas/GetProjectResponse",
  "properties": {
    "project": {
      "$ref": "#/$defs/Project",
      "description": "Requested project object."
    },
    "providers": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/Provider"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Providers added to the project. Only populated when includeAdded is true.",
      "title": "Providers"
    },
    "scannerPackages": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ScannerPackage"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Guardrail packages added to the project. Only populated when includeAdded is true.",
      "title": "Scannerpackages"
    },
    "scanners": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/Scanner"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Guardrails added to the project. Only populated when includeAdded is true.",
      "title": "Scanners"
    },
    "truncated": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "True if any category exceeded the per-category limit. Only set when includeAdded is true.",
      "title": "Truncated"
    }
  },
  "required": [
    "project"
  ],
  "type": "object",
  "$defs": {
    "APIRequestBlock": {
      "properties": {
        "awsAuth": {
          "anyOf": [
            {
              "$ref": "#/$defs/AWSAuth"
            },
            {
              "type": "null"
            }
          ],
          "template": true
        },
        "body": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Body"
        },
        "headers": {
          "additionalProperties": true,
          "default": {},
          "template": true,
          "title": "Headers",
          "type": "object"
        },
        "json": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Json"
        },
        "method": {
          "$ref": "#/$defs/HTTPMethod"
        },
        "ociAuth": {
          "anyOf": [
            {
              "$ref": "#/$defs/OCIAuth"
            },
            {
              "type": "null"
            }
          ],
          "template": true
        },
        "outputs": {
          "$ref": "#/$defs/APIScopeOutputs",
          "default": {}
        },
        "queryParams": {
          "additionalProperties": {
            "type": "string"
          },
          "default": {},
          "template": true,
          "title": "Queryparams",
          "type": "object"
        },
        "timeout": {
          "default": 20,
          "title": "Timeout",
          "type": "integer"
        },
        "type": {
          "const": "request",
          "default": "request",
          "title": "Type",
          "type": "string"
        },
        "url": {
          "template": true,
          "title": "Url",
          "type": "string"
        }
      },
      "required": [
        "method",
        "url"
      ],
      "title": "APIRequestBlock",
      "type": "object"
    },
    "APIRetryBlock": {
      "properties": {
        "attempts": {
          "title": "Attempts",
          "type": "integer"
        },
        "backoff": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "default": 1,
          "template": true,
          "title": "Backoff"
        },
        "block": {
          "oneOf": [
            {
              "$ref": "#/$defs/APIRequestBlock"
            },
            {
              "$ref": "#/$defs/APIWorkflowBlock"
            },
            {
              "$ref": "#/$defs/APIRetryBlock"
            }
          ],
          "template": true,
          "title": "Block"
        },
        "type": {
          "const": "retry",
          "default": "retry",
          "title": "Type",
          "type": "string"
        },
        "when": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "When"
        }
      },
      "required": [
        "attempts",
        "block"
      ],
      "title": "APIRetryBlock",
      "type": "object"
    },
    "APIScopeOutputs": {
      "patternProperties": {
        "^[a-zA-Z_][a-zA-Z0-9_]*$": {
          "type": "string"
        }
      },
      "template": true,
      "title": "APIScopeOutputs",
      "type": "object"
    },
    "APIWorkflowBlock": {
      "properties": {
        "outputs": {
          "$ref": "#/$defs/APIScopeOutputs",
          "default": {}
        },
        "stages": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/APIRequestBlock"
              },
              {
                "$ref": "#/$defs/APIRetryBlock"
              },
              {
                "$ref": "#/$defs/APIWorkflowBlock"
              }
            ]
          },
          "template": true,
          "title": "Stages",
          "type": "array"
        },
        "type": {
          "const": "workflow",
          "default": "workflow",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "stages"
      ],
      "title": "APIWorkflowBlock",
      "type": "object"
    },
    "AWSAuth": {
      "properties": {
        "accessKey": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Accesskey"
        },
        "region": {
          "template": true,
          "title": "Region",
          "type": "string"
        },
        "secretKey": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Secretkey"
        },
        "service": {
          "template": true,
          "title": "Service",
          "type": "string"
        },
        "token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Token"
        }
      },
      "required": [
        "service",
        "region"
      ],
      "title": "AWSAuth",
      "type": "object"
    },
    "ChatbotType": {
      "enum": [
        "teams",
        "slack"
      ],
      "title": "ChatbotType",
      "type": "string"
    },
    "GenAIScannerConfig": {
      "properties": {
        "input": {
          "default": "",
          "title": "Input",
          "type": "string"
        },
        "scanContext": {
          "default": "directional",
          "description": "Describes the context that is provided to the scanner\nindividual: Scan only the latest message\ndirectional: Scan all messages in the conversation in the same direction as the latest message",
          "enum": [
            "individual",
            "directional"
          ],
          "title": "Scancontext",
          "type": "string"
        },
        "type": {
          "default": "custom",
          "enum": [
            "genai",
            "custom"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "title": "GenAIScannerConfig",
      "type": "object"
    },
    "HTTPMethod": {
      "enum": [
        "GET",
        "POST",
        "PUT",
        "DELETE",
        "PATCH",
        "HEAD",
        "OPTIONS"
      ],
      "title": "HTTPMethod",
      "type": "string"
    },
    "InternalScannerSource": {
      "properties": {
        "type": {
          "const": "internal",
          "default": "internal",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "InternalScannerSource",
      "type": "object"
    },
    "KeywordScannerConfig": {
      "properties": {
        "type": {
          "const": "keyword",
          "default": "keyword",
          "title": "Type",
          "type": "string"
        },
        "words": {
          "description": "Words to check for in the prompt or response. Case insensitive. Empty strings will be removed.",
          "items": {
            "type": "string"
          },
          "title": "Words",
          "type": "array"
        }
      },
      "required": [
        "words"
      ],
      "title": "KeywordScannerConfig",
      "type": "object"
    },
    "LegacyScannerConfig": {
      "additionalProperties": true,
      "properties": {},
      "title": "LegacyScannerConfig",
      "type": "object"
    },
    "MLTextScannerConfig": {
      "properties": {
        "type": {
          "const": "ml_text",
          "default": "ml_text",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [],
      "title": "MLTextScannerConfig",
      "type": "object"
    },
    "OCIAuth": {
      "properties": {
        "keyId": {
          "template": true,
          "title": "Keyid",
          "type": "string"
        },
        "passphrase": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "template": true,
          "title": "Passphrase"
        },
        "privateKeyPem": {
          "template": true,
          "title": "Privatekeypem",
          "type": "string"
        }
      },
      "required": [
        "keyId",
        "privateKeyPem"
      ],
      "title": "OCIAuth",
      "type": "object"
    },
    "Project": {
      "properties": {
        "adminCount": {
          "default": 0,
          "title": "Admincount",
          "type": "integer"
        },
        "adminRoleId": {
          "format": "uuid",
          "title": "Adminroleid",
          "type": "string"
        },
        "agentSessionCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Agentsessioncount"
        },
        "botType": {
          "anyOf": [
            {
              "$ref": "#/$defs/ChatbotType"
            },
            {
              "type": "null"
            }
          ]
        },
        "chatbotId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Chatbotid"
        },
        "config": {
          "$ref": "#/$defs/ProjectConfig"
        },
        "createdAt": {
          "format": "date-time",
          "title": "Createdat",
          "type": "string"
        },
        "createdBy": {
          "title": "Createdby",
          "type": "string"
        },
        "deploymentStatus": {
          "$ref": "#/$defs/ProjectDeploymentStatus",
          "default": "draft"
        },
        "friendlyId": {
          "anyOf": [
            {
              "maxLength": 100,
              "minLength": 1,
              "pattern": "^[a-zA-Z0-9-_]+$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The name can be used to identify the project instead of the id. It is case-sensitive, unique and can only contain letters, numbers and dashes.",
          "title": "Friendlyid"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "memberCount": {
          "default": 0,
          "title": "Membercount",
          "type": "integer"
        },
        "memberRoleId": {
          "format": "uuid",
          "title": "Memberroleid",
          "type": "string"
        },
        "name": {
          "maxLength": 100,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "providerCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Providercount"
        },
        "scannerCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Scannercount"
        },
        "tokenCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tokencount"
        },
        "type": {
          "$ref": "#/$defs/ProjectType"
        },
        "updatedAt": {
          "format": "date-time",
          "title": "Updatedat",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "type",
        "config",
        "createdAt",
        "createdBy",
        "updatedAt",
        "adminRoleId",
        "memberRoleId",
        "tokenCount",
        "providerCount",
        "scannerCount"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectConfig": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "packages": {
          "default": [],
          "description": "Packages configured for the project",
          "items": {
            "$ref": "#/$defs/ProjectConfigScanner"
          },
          "title": "Packages",
          "type": "array"
        },
        "providers": {
          "default": [],
          "description": "Providers available to the project",
          "items": {
            "$ref": "#/$defs/ProjectConfigProvider"
          },
          "title": "Providers",
          "type": "array"
        },
        "scanners": {
          "default": [],
          "description": "Guardrails configured for the project",
          "items": {
            "$ref": "#/$defs/ProjectConfigScanner"
          },
          "title": "Scanners",
          "type": "array"
        }
      },
      "title": "ProjectConfig",
      "type": "object"
    },
    "ProjectConfigProvider": {
      "properties": {
        "capabilities": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ProviderCapability"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Capabilities"
        },
        "default": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Default"
        },
        "enabled": {
          "title": "Enabled",
          "type": "boolean"
        },
        "id": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Type"
        }
      },
      "required": [
        "enabled"
      ],
      "title": "ProjectConfigProvider",
      "type": "object"
    },
    "ProjectConfigScanner": {
      "properties": {
        "blocking": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Blocking"
        },
        "direction": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScannerDirection"
            },
            {
              "const": "",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Direction"
        },
        "enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Enabled"
        },
        "flagMessage": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Flagmessage"
        },
        "force": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Force"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "mode": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScanMode"
            },
            {
              "type": "null"
            }
          ]
        },
        "version": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "maxLength": 100,
              "minLength": 1,
              "pattern": "^[a-zA-Z0-9-_]+$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Version"
        }
      },
      "required": [
        "id"
      ],
      "title": "ProjectConfigScanner",
      "type": "object"
    },
    "ProjectDeploymentStatus": {
      "enum": [
        "live",
        "draft"
      ],
      "title": "ProjectDeploymentStatus",
      "type": "string"
    },
    "ProjectType": {
      "enum": [
        "app",
        "bot",
        "chat",
        "global",
        "agentic",
        "red_team"
      ],
      "title": "ProjectType",
      "type": "string"
    },
    "Provider": {
      "properties": {
        "authTemplate": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/APIRequestBlock"
                },
                {
                  "$ref": "#/$defs/APIRetryBlock"
                },
                {
                  "$ref": "#/$defs/APIWorkflowBlock"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Optional API template to retrieve temporary auth credentials",
          "title": "Authtemplate"
        },
        "availability": {
          "$ref": "#/$defs/ProviderAvailability",
          "default": {
            "global": false,
            "projectIds": []
          }
        },
        "capabilities": {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/ProviderCapability"
              },
              {
                "type": "string"
              }
            ]
          },
          "title": "Capabilities",
          "type": "array",
          "uniqueItems": true
        },
        "hasLogo": {
          "default": false,
          "title": "Haslogo",
          "type": "boolean"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "inputs": {
          "additionalProperties": true,
          "title": "Inputs",
          "type": "object"
        },
        "maxRequestsPerSecond": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated, use requestConcurrencyLimit instead",
          "title": "Maxrequestspersecond"
        },
        "name": {
          "description": "The name can be used to identify the provider instead of the id. It is case-sensitive, unique and can only contain letters, numbers and dashes.",
          "pattern": "^[a-zA-Z0-9-_]+$",
          "title": "Name",
          "type": "string"
        },
        "projectId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Projectid"
        },
        "redTeam": {
          "default": false,
          "title": "Redteam",
          "type": "boolean"
        },
        "requestConcurrencyLimit": {
          "anyOf": [
            {
              "$ref": "#/$defs/RequestConcurrencyLimit"
            },
            {
              "type": "null"
            }
          ],
          "description": "Specifies concurrency limits for requests from campaign run attacks"
        },
        "secrets": {
          "additionalProperties": {
            "format": "uuid",
            "type": "string"
          },
          "title": "Secrets",
          "type": "object"
        },
        "siem": {
          "default": false,
          "title": "Siem",
          "type": "boolean"
        },
        "systemProviderId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Systemproviderid"
        },
        "tag": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tag"
        },
        "template": {
          "oneOf": [
            {
              "$ref": "#/$defs/APIRequestBlock"
            },
            {
              "$ref": "#/$defs/APIRetryBlock"
            },
            {
              "$ref": "#/$defs/APIWorkflowBlock"
            }
          ],
          "title": "Template"
        },
        "type": {
          "$ref": "#/$defs/ProviderType"
        }
      },
      "required": [
        "id",
        "name",
        "type",
        "template",
        "inputs",
        "secrets",
        "capabilities"
      ],
      "title": "Provider",
      "type": "object"
    },
    "ProviderAvailability": {
      "properties": {
        "global": {
          "default": false,
          "description": "If True provider can be used by all projects",
          "title": "Global",
          "type": "boolean"
        },
        "projectIds": {
          "default": [],
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "title": "Projectids",
          "type": "array",
          "uniqueItems": true
        }
      },
      "title": "ProviderAvailability",
      "type": "object"
    },
    "ProviderCapability": {
      "enum": [
        "chat",
        "red_team",
        "siem",
        "openai_chat",
        "openai_responses",
        "anthropic_messages",
        "google_generate_content"
      ],
      "title": "ProviderCapability",
      "type": "string"
    },
    "ProviderType": {
      "enum": [
        "ibm",
        "openai",
        "azure",
        "cohere",
        "ai21",
        "custom",
        "anthropic",
        "groq",
        "openai-compatible",
        "huggingface",
        "siem",
        "google",
        "bedrock"
      ],
      "title": "ProviderType",
      "type": "string"
    },
    "RegexScannerConfig": {
      "properties": {
        "pattern": {
          "description": "Python Flavored Regular Expression (RegEx) to check for in the prompt or response. Case insensitive.",
          "title": "Pattern",
          "type": "string"
        },
        "type": {
          "const": "regex",
          "default": "regex",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "pattern"
      ],
      "title": "RegexScannerConfig",
      "type": "object"
    },
    "RemediationScannerSource": {
      "properties": {
        "sourceId": {
          "format": "uuid",
          "title": "Sourceid",
          "type": "string"
        },
        "type": {
          "const": "remediation",
          "default": "remediation",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "sourceId"
      ],
      "title": "RemediationScannerSource",
      "type": "object"
    },
    "RequestConcurrencyLimit": {
      "properties": {
        "decayPerSecond": {
          "anyOf": [
            {
              "exclusiveMinimum": 0.0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Number of request slots that are opened per second.\n\nSet a value to use the concurrency limit as a rate limit.\n\nFor example, to set a rate limit of 5 requests per second set requests=5 and decayPerSecond=5",
          "title": "Decaypersecond"
        },
        "requests": {
          "description": "Max number of request slots that can be occupied at once.",
          "exclusiveMinimum": 0.0,
          "title": "Requests",
          "type": "integer"
        }
      },
      "required": [
        "requests"
      ],
      "title": "RequestConcurrencyLimit",
      "type": "object"
    },
    "ScanMode": {
      "enum": [
        "block",
        "audit",
        "redact"
      ],
      "title": "ScanMode",
      "type": "string"
    },
    "Scanner": {
      "properties": {
        "availability": {
          "$ref": "#/$defs/ScannerAvailability",
          "default": {
            "global": false,
            "projectIds": []
          }
        },
        "config": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/RegexScannerConfig"
                },
                {
                  "$ref": "#/$defs/KeywordScannerConfig"
                },
                {
                  "$ref": "#/$defs/GenAIScannerConfig"
                },
                {
                  "$ref": "#/$defs/MLTextScannerConfig"
                }
              ]
            },
            {
              "$ref": "#/$defs/LegacyScannerConfig"
            },
            {
              "type": "null"
            }
          ],
          "title": "Config"
        },
        "direction": {
          "$ref": "#/$defs/ScannerDirection",
          "default": "request"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "packageId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Packageid"
        },
        "projectId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Projectid"
        },
        "scannerTemplateId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Scannertemplateid"
        },
        "source": {
          "default": {
            "type": "internal"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/InternalScannerSource"
            },
            {
              "$ref": "#/$defs/ZipScannerSource"
            },
            {
              "$ref": "#/$defs/VendorScannerSource"
            },
            {
              "$ref": "#/$defs/RemediationScannerSource"
            }
          ],
          "title": "Source"
        },
        "tags": {
          "default": [],
          "items": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9-_]+$",
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        },
        "vendored": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "default": false,
          "title": "Vendored"
        },
        "versionMeta": {
          "$ref": "#/$defs/ScannerVersionMeta"
        }
      },
      "required": [
        "name",
        "id",
        "versionMeta"
      ],
      "title": "Scanner",
      "type": "object"
    },
    "ScannerAvailability": {
      "properties": {
        "global": {
          "default": false,
          "description": "If True guardrail can be used by all projects",
          "title": "Global",
          "type": "boolean"
        },
        "projectIds": {
          "default": [],
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "title": "Projectids",
          "type": "array",
          "uniqueItems": true
        }
      },
      "title": "ScannerAvailability",
      "type": "object"
    },
    "ScannerDatasetResult": {
      "properties": {
        "datasetRunId": {
          "format": "uuid",
          "title": "Datasetrunid",
          "type": "string"
        },
        "f1Score": {
          "title": "F1Score",
          "type": "number"
        }
      },
      "required": [
        "datasetRunId",
        "f1Score"
      ],
      "title": "ScannerDatasetResult",
      "type": "object"
    },
    "ScannerDirection": {
      "enum": [
        "both",
        "request",
        "response"
      ],
      "title": "ScannerDirection",
      "type": "string"
    },
    "ScannerPackage": {
      "properties": {
        "availability": {
          "$ref": "#/$defs/ScannerAvailability",
          "default": {
            "global": false,
            "projectIds": []
          }
        },
        "direction": {
          "$ref": "#/$defs/ScannerDirection"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "performanceScannerIds": {
          "anyOf": [
            {
              "items": {
                "format": "uuid",
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Performancescannerids"
        },
        "projectId": {
          "anyOf": [
            {
              "format": "uuid",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Projectid"
        },
        "scannerCounts": {
          "additionalProperties": {
            "type": "integer"
          },
          "default": {},
          "title": "Scannercounts",
          "type": "object"
        },
        "scannerIds": {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "title": "Scannerids",
          "type": "array"
        },
        "source": {
          "oneOf": [
            {
              "$ref": "#/$defs/InternalScannerSource"
            },
            {
              "$ref": "#/$defs/ZipScannerSource"
            },
            {
              "$ref": "#/$defs/VendorScannerSource"
            },
            {
              "$ref": "#/$defs/RemediationScannerSource"
            }
          ],
          "title": "Source"
        },
        "vendored": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          ],
          "default": false,
          "title": "Vendored"
        }
      },
      "required": [
        "id",
        "name",
        "source",
        "direction",
        "scannerIds"
      ],
      "title": "ScannerPackage",
      "type": "object"
    },
    "ScannerVersionMeta": {
      "properties": {
        "createdAt": {
          "format": "date-time",
          "title": "Createdat",
          "type": "string"
        },
        "createdBy": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Createdby"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "direction": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScannerDirection"
            },
            {
              "type": "null"
            }
          ]
        },
        "f1Score": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "F1Score"
        },
        "id": {
          "format": "uuid",
          "title": "Id",
          "type": "string"
        },
        "latestDatasetResult": {
          "anyOf": [
            {
              "$ref": "#/$defs/ScannerDatasetResult"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9-_]+$",
          "title": "Name",
          "type": "string"
        },
        "published": {
          "title": "Published",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "createdAt",
        "name",
        "published"
      ],
      "title": "ScannerVersionMeta",
      "type": "object"
    },
    "VendorScannerSource": {
      "properties": {
        "type": {
          "const": "vendor",
          "default": "vendor",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "VendorScannerSource",
      "type": "object"
    },
    "ZipScannerSource": {
      "properties": {
        "type": {
          "const": "zip",
          "default": "zip",
          "title": "Type",
          "type": "string"
        }
      },
      "title": "ZipScannerSource",
      "type": "object"
    }
  }
}