Picus Security Simulations API

The Simulations API from Picus Security — 4 operation(s) for simulations.

OpenAPI Specification

picus-security-simulations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Picus Customer Simulations API
  description: '<p class="body-1">You can access the simulation raw data using the Rest API. Scope of the API includes; Simulation list, Simulation Details, Threat/Objective/Action Results, Results mapped to MITRE ATTC&K and Unified Kill Chain frameworks, Detection Analysis Results, Validated Logs & Alerts with SIEM & EDR integration.</p>

    <p class="body-1">OAuth2 protocol is used to authorize Refresh/Access tokens. To obtain the API, you should generate a refresh token and then request an access token using the /v1/auth/token endpoint. The refresh token will be valid for 6 months, whereas the access token will be available for 2 hours. After getting the access token, add Authorization: Bearer {accessToken} to the header to request access to the below endpoints.</p>

    <p class="body-1">Endpoints returning data with a lot of load works with the pagination method. You can use the offset and limit parameters to get the correct page.</p>


    <i class="body-1">Your usage will be limited with your Picus license.</i>'
  version: '1.0'
servers:
- url: https://api.picussecurity.com/
security:
- Access-Token: []
tags:
- name: Simulations
paths:
  /v1/simulations:
    get:
      security:
      - Access-Token: []
      description: 'Simulation List; Simulation ID, Simulation Name, Simulation Agent (with status), Enrichment Status, Last Prevention Result, Last Detection Result (if Available)

        Default limit: 25, Default offset: 0

        Max limit: 50'
      tags:
      - Simulations
      summary: '# Simulation List'
      operationId: simulationListParams
      parameters:
      - x-go-name: Limit
        name: limit
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Offset
        name: offset
        in: query
        schema:
          type: integer
          format: int64
      - x-go-name: Status
        description: 'Filter with Status (one or more status): RUNNING | STOPPED | WAITING FOR THE FIRST RUN | NOT STARTED | COMPLETED'
        name: status
        in: query
        schema:
          type: array
          items:
            type: string
      - x-go-name: SimulationName
        description: Filter with Simulation name.
        name: simulation_name
        in: query
        schema:
          type: string
      - x-go-name: AgentName
        description: Filter with Agent name.
        name: agent_name
        in: query
        schema:
          type: string
      - x-go-name: AgentId
        description: Filter with Agent id.
        name: agent_id
        in: query
        schema:
          type: integer
          format: uint64
      - x-go-name: TemplateName
        description: Filter with Template name.
        name: template_name
        in: query
        schema:
          type: string
      - x-go-name: TemplateId
        description: Filter with Template id.
        name: template_id
        in: query
        schema:
          type: integer
          format: uint64
      - x-go-name: PreventionResultLte
        description: Filter with Prevention Result Less Than or Equals
        name: prevention_result_lte
        in: query
        schema:
          type: integer
          format: int64
          maximum: 100
          minimum: -1
      - x-go-name: PreventionResultGte
        description: Filter with Prevention Result Greater Than or Equals
        name: prevention_result_gte
        in: query
        schema:
          type: integer
          format: int64
          maximum: 100
          minimum: -1
      - x-go-name: DetectionResultLte
        description: Filter with Detection Result Less Than or Equals
        name: detection_result_lte
        in: query
        schema:
          type: integer
          format: int64
          maximum: 100
          minimum: -1
      - x-go-name: DetectionResultGte
        description: Filter with Detection Result Greater Than or Equals
        name: detection_result_gte
        in: query
        schema:
          type: integer
          format: int64
          maximum: 100
          minimum: -1
      responses:
        '200':
          $ref: '#/components/responses/SimulationsResponse'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorSwagger'
      servers:
      - url: https://api.picussecurity.com/
    post:
      security:
      - Access-Token: []
      description: Creates the simulation with given information
      tags:
      - Simulations
      summary: '# Create Simulation'
      operationId: createSimulationParams
      responses:
        '200':
          $ref: '#/components/responses/SimulationCreateReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorSwagger'
      servers:
      - url: https://api.picussecurity.com/
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - template_id
              properties:
                agent_id:
                  description: id of the agent
                  type: integer
                  format: uint64
                  maximum: 1000000
                  minimum: 1
                  x-go-name: AgentID
                  example: 3
                agent_user_ids:
                  description: agent user ids for installable agent execution users
                  type: array
                  maxItems: 2
                  items:
                    type: integer
                    format: uint64
                  x-go-name: AgentUserIDs
                  example:
                  - 1
                  - 2
                auto_resume:
                  description: auto resume feature of the simulation, if set auto resume will be enabled for simulation
                  type: boolean
                  x-go-name: AutoResume
                description:
                  description: description of the simulation
                  type: string
                  maximum: 1000
                  x-go-name: Description
                  example: This simulation rocks!
                force:
                  description: 'force (option to create identical simulation)

                    available values are true and false'
                  type: boolean
                  x-go-name: Force
                integrations:
                  description: integration ids
                  type: array
                  items:
                    type: integer
                    format: uint64
                  x-go-name: Integrations
                  example:
                  - 1
                  - 2
                  - 3
                name:
                  description: name of the simulation
                  type: string
                  maximum: 500
                  minimum: 1
                  x-go-name: Name
                  example: simulation - 1
                obfuscation_methods:
                  description: 'TODO : add max

                    obfuscation methods'
                  type: array
                  items:
                    type: string
                  x-go-name: ObfuscationMethods
                  example: Base64 Encoding, XOR Encryption
                protocols:
                  description: protocols
                  type: array
                  items:
                    $ref: '#/components/schemas/SimulationProtocol'
                  x-go-name: Protocols
                schedule:
                  $ref: '#/components/schemas/ScheduleInput'
                schedule_now:
                  type: boolean
                  x-go-name: ScheduleNow
                template_id:
                  description: id of the scope
                  type: integer
                  format: uint64
                  maximum: 10000
                  minimum: 1
                  x-go-name: TemplateId
                  example: 1
  /v1/simulations/{Id}:
    get:
      security:
      - Access-Token: []
      description: 'Simulation Detail; Simulation Name, Simulation Agent (with status), Enrichment Status, Last Prevention Result,

        Last Detection Result (if Available), Simulation Run List'
      tags:
      - Simulations
      summary: '# Simulation Detail'
      operationId: simulationParams
      parameters:
      - description: Simulation ID (URI parameter)
        name: Id
        in: path
        required: true
        schema:
          type: integer
          format: uint64
      responses:
        '200':
          $ref: '#/components/responses/SimulationDetailReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorSwagger'
      servers:
      - url: https://api.picussecurity.com/
    put:
      security:
      - Access-Token: []
      description: Updates the simulation with given information
      tags:
      - Simulations
      summary: '# Update Simulation'
      operationId: updateSimulationParams
      parameters:
      - description: Simulation ID (URI parameter)
        name: Id
        in: path
        required: true
        schema:
          type: integer
          format: uint64
      responses:
        '200':
          $ref: '#/components/responses/SimulationUpdateReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorSwagger'
      servers:
      - url: https://api.picussecurity.com/
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                schedule:
                  $ref: '#/components/schemas/ScheduleInput'
                schedule_now:
                  type: boolean
                  x-go-name: ScheduleNow
    delete:
      security:
      - Access-Token: []
      description: Deletes simulation with given id
      tags:
      - Simulations
      summary: '# Delete Simulation'
      operationId: simulationDeleteParams
      parameters:
      - description: Simulation ID (URI parameter)
        name: Id
        in: path
        required: true
        schema:
          type: integer
          format: uint64
      responses:
        '200':
          $ref: '#/components/responses/SimulationDeleteReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorWithSuccessSwagger'
      servers:
      - url: https://api.picussecurity.com/
  /v1/simulations/{Id}/cancel:
    put:
      security:
      - Access-Token: []
      description: Cancels simulation with given id if it is running
      tags:
      - Simulations
      summary: '# Cancel Simulation'
      operationId: simulationCancelParams
      parameters:
      - description: Simulation ID (URI parameter)
        name: Id
        in: path
        required: true
        schema:
          type: integer
          format: uint64
      responses:
        '200':
          $ref: '#/components/responses/SimulationCancelReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorWithSuccessSwagger'
      servers:
      - url: https://api.picussecurity.com/
  /v1/simulations/{Id}/simulate-now:
    post:
      security:
      - Access-Token: []
      description: ReRuns simulation with given id
      tags:
      - Simulations
      summary: '# Simulate Now'
      operationId: simulateNowParams
      parameters:
      - description: Simulation ID (URI parameter)
        name: Id
        in: path
        required: true
        schema:
          type: integer
          format: uint64
      responses:
        '200':
          $ref: '#/components/responses/SimulateNowReturnSwagger'
        '422':
          $ref: '#/components/responses/validationErrorSwagger'
        default:
          $ref: '#/components/responses/genericErrorSwagger'
      servers:
      - url: https://api.picussecurity.com/
components:
  schemas:
    NullBool:
      type: object
      properties:
        Bool:
          type: boolean
        Valid:
          type: boolean
      x-go-package: github.com/picusnext/picus-ng-lib/go/kit/types
    SimulationProtocol:
      type: object
      properties:
        module_id:
          description: 'Attack module ID that the simulation runs.


            Available attack modules, as `id: name`:


            1: Network Infiltration

            2: Windows Endpoint Scenario

            3: Web Application

            4: E-mail Infiltration

            5: Data Exfiltration

            6: Linux Endpoint Scenario

            7: macOS Endpoint Scenario

            9: URL Filtering

            10: Kubernetes Endpoint Scenario

            103: Azure Cloud Emulation

            104: AWS Cloud Emulation

            105: GCP Cloud Emulation'
          type: integer
          format: uint64
          x-go-name: ModuleID
          example: 1
        protocols:
          type: array
          items:
            type: string
          x-go-name: Protocols
          example:
          - http
          - https
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/internal_request/customer_api_dto
    SimulationRunApiOutput:
      type: object
      properties:
        browser:
          description: Run Browser Info
          type: string
          x-go-name: Browser
          example: BrowserUnknown
        id:
          description: Run Id (1)
          type: integer
          format: uint64
          x-go-name: ID
          example: 1
        status:
          description: Run Status (COMPLETED | RUNNING)
          type: string
          x-go-name: Status
          example: COMPLETED
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/internal_request/customer_api_dto
    StatusDetails:
      type: object
      properties:
        detection:
          $ref: '#/components/schemas/ThreatCounts'
        prevention:
          $ref: '#/components/schemas/ThreatCounts'
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/dto
    AssessmentProtocol:
      type: object
      properties:
        module_id:
          type: integer
          format: uint64
          x-go-name: ModuleID
          example: 1
        protocols:
          type: array
          items:
            type: string
          x-go-name: Protocols
          example:
          - http
          - https
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/internal_request/internal_service_dto
    AgentSummary:
      type: object
      properties:
        id:
          description: Agent Id
          type: integer
          format: uint64
          x-go-name: Id
          example: 1
        name:
          description: Agent Name
          type: string
          x-go-name: Name
          example: Agent-1
        status:
          description: Agent status gives information about your agent alive (alive | dead | expired)
          type: string
          x-go-name: Status
          example: alive | dead | expired
        type:
          description: Agent type (QuickEmail | Browser | Installable Agent | Windows | Linux | MacOS)
          type: string
          x-go-name: Type
          example: QuickEmail | Browser | Installable Agent | Windows | Linux | MacOS
        version:
          description: Agent Version like 3.4.0.0
          type: string
          x-go-name: Version
          example: 3.4.0.0
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
    ThreatCounts:
      type: object
      properties:
        completed_threat_count:
          type: integer
          format: int64
          x-go-name: Completed
        total_threat_count:
          type: integer
          format: int64
          x-go-name: Total
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/dto
    SimulationRunReturn:
      type: object
      properties:
        completed_at:
          description: Run Completed At
          type: integer
          format: int64
          x-go-name: CompletedAt
          example: 1650527217
        fail_reason_message:
          type: string
          x-go-name: FailReasonMessage
        id:
          description: Run Id
          type: string
          x-go-name: Id
          example: '1'
        scheduled_time:
          type: integer
          format: int64
          x-go-name: ScheduledTime
        started_at:
          description: Run Started At
          type: integer
          format: int64
          x-go-name: StartedAt
          example: 1650526217
        status:
          description: Run Status (RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN)
          type: string
          x-go-name: Status
          example: RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
    NullInt64:
      type: object
      properties:
        Int64:
          type: integer
          format: int64
        Valid:
          type: boolean
      x-go-package: github.com/picusnext/picus-ng-lib/go/kit/types
    SimulationDetailsReturn:
      type: object
      properties:
        agent:
          $ref: '#/components/schemas/AgentSummary'
        completion_ratio:
          type: integer
          format: int64
          x-go-name: CompletionRatio
        created_at:
          description: Simulation Created At
          type: integer
          format: int64
          x-go-name: CreatedAt
          example: 1654623047
        detection_analysis:
          $ref: '#/components/schemas/Detection'
        has_detection_analysis:
          description: Is Simulation enriched with detection analysis
          type: boolean
          x-go-name: HasDetectionAnalysis
        has_last_run_detection_analysis:
          description: Is last simulation run contains detection analysis
          type: boolean
          x-go-name: HasLastRunDetectionAnalysis
        last_detection_security_score:
          description: Simulation Detection Result (if there is a result)
          type: integer
          format: int64
          x-go-name: LastDetectionResult
        last_prevention_security_score:
          description: Simulation Prevention Result (if there is a result)
          type: integer
          format: int64
          x-go-name: LastPreventionResult
        simulation_id:
          description: Simulation Id
          type: integer
          format: uint64
          x-go-name: SimulationId
          example: 1
        simulation_name:
          description: Simulation Name
          type: string
          x-go-name: SimulationName
          example: Simulation 1
        simulation_run:
          type: array
          items:
            $ref: '#/components/schemas/SimulationRunReturn'
          x-go-name: SimulationRuns
        status:
          description: Simulation Last Run Status (RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN)
          type: string
          x-go-name: Status
          example: RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN
        status_details:
          $ref: '#/components/schemas/StatusDetails'
        template_id:
          description: Template Id
          type: integer
          format: uint64
          x-go-name: TemplateId
          example: 1
        template_name:
          description: Template Name
          type: string
          x-go-name: TemplateName
          example: 'Template #1'
        updated_at:
          description: Simulation Updated At
          type: integer
          format: int64
          x-go-name: UpdatedAt
          example: 1654623047
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
    SimulationApiOutput:
      type: object
      properties:
        agent_id:
          $ref: '#/components/schemas/NullInt64'
        agent_user_ids:
          description: agent user ids for installable agent execution users
          type: array
          items:
            type: integer
            format: uint64
          x-go-name: AgentUserIDs
          example:
          - 1
          - 2
        description:
          description: Simulation Description (description of the simulation)
          type: string
          x-go-name: Description
          example: description of the simulation
        id:
          description: Simulation Id (1)
          type: integer
          format: uint64
          x-go-name: ID
          example: 1
        integrations:
          description: Simulation Integrations ([1,2,3])
          type: array
          items:
            type: integer
            format: uint64
          x-go-name: Integrations
          example:
          - 1
          - 2
          - 3
        is_active:
          $ref: '#/components/schemas/NullBool'
        name:
          description: Simulation Name (Simulation - 1)
          type: string
          x-go-name: Name
          example: Simulation - 1
        obfuscation_methods:
          description: obfuscation methods
          type: array
          items:
            type: string
          x-go-name: ObfuscationMethods
        protocols:
          description: 'Simulation Protocols ([http, https])

            protocols'
          type: array
          items:
            $ref: '#/components/schemas/AssessmentProtocol'
          x-go-name: Protocols
        schedule_id:
          description: Simulation Schedule Id (3)
          type: integer
          format: uint64
          x-go-name: ScheduleID
          example: 3
        template_id:
          $ref: '#/components/schemas/NullInt64'
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/internal_request/customer_api_dto
    Detection:
      type: object
      properties:
        integrations:
          description: Integration List
          type: array
          items:
            $ref: '#/components/schemas/Enrichment'
          x-go-name: Enrichments
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
    ScheduleInput:
      type: object
      required:
      - start_time
      - name
      - frequency
      properties:
        day_of_month:
          description: required if frequency is `MONTHLY`
          type: array
          maximum: 31
          minimum: 1
          items:
            type: integer
            format: int64
          x-go-name: DayOfMonth
          example:
          - 1
          - 30
        day_of_week:
          description: required if frequency is `WEEKLY`
          type: array
          maximum: 7
          minimum: 1
          items:
            type: integer
            format: int64
          x-go-name: DayOfWeek
          example:
          - 1
          - 3
        frequency:
          description: ONCE, DAILY, WEEKLY, MONTHLY
          type: string
          maximum: 10
          minimum: 4
          x-go-name: Frequency
          example: WEEKLY
        frequency_interval:
          description: required if frequency is not `ONCE`
          type: integer
          format: int64
          x-go-name: FrequencyInterval
          example: 2
        name:
          type: string
          maximum: 500
          minimum: 1
          x-go-name: Name
          example: Schedule-1
        start_time:
          description: 'time format -> `epoch`

            Optional value: `now`'
          type: integer
          format: int64
          x-go-name: StartTime
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/internal_request/customer_api_dto
    SimulationSummary:
      type: object
      properties:
        agent:
          $ref: '#/components/schemas/AgentSummary'
        completion_ratio:
          type: integer
          format: int64
          x-go-name: CompletionRatio
        detection_analysis:
          $ref: '#/components/schemas/Detection'
        fail_reason_message:
          type: string
          x-go-name: FailReasonMessage
        has_detection_analysis:
          description: If detection of simulation has no enrichment this field will be false
          type: boolean
          x-go-name: HasDetectionAnalysis
        has_last_run_detection_analysis:
          description: To avoid confusing about has_detection_analysis, if last_detection_score is different from -1 this field will be true
          type: boolean
          x-go-name: HasLastRunDetectionAnalysis
        last_detection_security_score:
          description: Last running detection security score is between 0 and 100. Logging and alert score calculated together
          type: integer
          format: int64
          x-go-name: LastDetectionResult
          example: 50
        last_prevention_security_score:
          description: Last running prevention security score is between 0 and 100
          type: integer
          format: int64
          x-go-name: LastPreventionResult
          example: 50
        simulation_id:
          description: Simulation Id
          type: integer
          format: uint64
          x-go-name: SimulationId
          example: 1
        simulation_name:
          description: Simulation Name
          type: string
          x-go-name: SimulationName
          example: Simulation-1
        status:
          description: Simulation last run status (RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN)
          type: string
          x-go-name: Status
          example: RUNNING | COMPLETED | STOPPED | NOT STARTED | SCHEDULED | WAITING FOR THE FIRST RUN
        status_details:
          $ref: '#/components/schemas/StatusDetails'
        template_id:
          description: Template Id
          type: integer
          format: uint64
          x-go-name: TemplateId
          example: 1
        template_name:
          description: Template Name
          type: string
          x-go-name: TemplateName
          example: 'Template #1'
        updated_at:
          description: Simulation Updated At
          type: integer
          format: int64
          x-go-name: UpdatedAt
          example: 1654623047
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
    Pagination:
      type: object
      properties:
        limit:
          description: Limit
          type: integer
          format: int64
          x-go-name: Limit
          example: 20
        offset:
          description: Offset
          type: integer
          format: int64
          x-go-name: Offset
          example: 0
        total_count:
          description: Total Count
          type: integer
          format: int64
          x-go-name: TotalCount
          example: 100
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/apirequest
    Enrichment:
      type: object
      properties:
        id:
          description: Integration Id
          type: integer
          format: int64
          x-go-name: Id
          example: 1
        product_name:
          description: Product Name
          type: string
          x-go-name: ProductName
          example: Crowdstrike
      x-go-package: github.com/picusnext/picus-digital/go/customer-api/simulations
  responses:
    validationErrorSwagger:
      description: validationErrorSwagger is represents the erroneous cases
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                description: Validation Error List
                type: object
                additionalProperties:
                  type: string
                x-go-name: Errors
                example:
                  param: tag=max, param=25, given value=1000
              message:
                description: Message will be "validation error"
                type: string
                x-go-name: Message
                example: validation error
    SimulationsResponse:
      description: SimulationsResponse
      content:
        application/json:
          schema:
            type: object
            properties:
              pages:
                $ref: '#/components/schemas/Pagination'
              simulations:
                type: array
                items:
                  $ref: '#/components/schemas/SimulationSummary'
                x-go-name: Simulations
    genericErrorSwagger:
      description: genericErrorSwagger is represents the erroneous cases
      content:
        application/json:
          schema:
            type: object
            properties:
              error_code:
                description: Error Code is optional. It is using for define specific error types.
                type: integer
                format: int64
                x-go-name: ErrorCode
                example: 1001
              errors:
                description: Errors are optional. If there are multiple error, this field gives details.
                type: object
                additionalProperties:
                  type: string
                x-go-name: Errors
                example: '["error1", "error2"]'
              message:
                description: Error Message that contains information about error
                type: string
                x-go-name: Message
    SimulationUpdateReturnSwagger:
      description: SimulationUpdateReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              run_immediately:
                type: boolean
                x-go-name: RunImmediately
              simulation:
                $ref: '#/components/schemas/SimulationApiOutput'
    SimulateNowReturnSwagger:
      description: SimulateNowReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              run_immediately:
                type: boolean
                x-go-name: RunImmediately
              run_info:
                $ref: '#/components/schemas/SimulationRunApiOutput'
              simulation:
                $ref: '#/components/schemas/SimulationApiOutput'
              simulation_already_exist:
                type: boolean
                x-go-name: AssessmentAlreadyExist
    SimulationCancelReturnSwagger:
      description: SimulationCancelReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                x-go-name: Success
    SimulationDeleteReturnSwagger:
      description: SimulationDeleteReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                x-go-name: Success
    SimulationCreateReturnSwagger:
      description: SimulationCreateReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              run_immediately:
                type: boolean
                x-go-name: RunImmediately
              run_info:
                $ref: '#/components/schemas/SimulationRunApiOutput'
              simulation:
                $ref: '#/components/schemas/SimulationApiOutput'
              simulation_already_exist:
                type: boolean
                x-go-name: AssessmentAlreadyExist
    SimulationDetailReturnSwagger:
      description: SimulationDetailReturnSwagger
      content:
        application/json:
          schema:
            type: object
            properties:
              Simulations:
                $ref: '#/components/schemas/SimulationDetailsReturn'
    genericErrorWithSuccessSwagger:
      description: genericErrorWithSuccessSwagger is represents the erroneous cases with success field
      content:
        application/json:
          schema:
            type: object
            properties:
              error_code:
                description: Error Code is optional. It is using for define specific error types.
                type: integer
                format: int64
                x-go-name: ErrorCode
                example: 1001
              err

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/picus-security/refs/heads/main/openapi/picus-security-simulations-api-openapi.yml