Tricentis Deletion Policies API

The Deletion Policies API from Tricentis — 2 operation(s) for deletion policies.

OpenAPI Specification

tricentis-deletion-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '3.0'
  title: NeoLoad Deletion Policies API
security:
- NeoloadAuthorizer: []
tags:
- name: Deletion Policies
paths:
  /v3/workspaces/{workspaceId}/deletion-policies:
    get:
      tags:
      - Deletion Policies
      summary: Get all Policies of a Workspace
      operationId: list
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
    post:
      tags:
      - Deletion Policies
      summary: Create a new deletion policy
      description: Create a new deletion policy
      operationId: create
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchDeletionPolicyApiFullRequestDto'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '413':
          $ref: '#/components/responses/error_413'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
  /v3/workspaces/{workspaceId}/deletion-policies/{deletionPolicyId}:
    get:
      tags:
      - Deletion Policies
      summary: Get one deletion policy
      description: Get one deletion policy
      operationId: get
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      - name: deletionPolicyId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
    put:
      tags:
      - Deletion Policies
      summary: Update a deletion policy
      description: Update all field of the deletion policy
      operationId: put
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      - name: deletionPolicyId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchDeletionPolicyApiFullRequestDto'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '413':
          $ref: '#/components/responses/error_413'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
    delete:
      tags:
      - Deletion Policies
      summary: Delete a deletion policy
      description: Delete a deletion policy
      operationId: delete
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      - name: deletionPolicyId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: OK
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
    patch:
      tags:
      - Deletion Policies
      summary: Partially Update a deletion policy
      description: Update only the specified fields of the deletion policy
      operationId: patch
      parameters:
      - name: workspaceId
        in: path
        required: true
        schema:
          type: string
      - name: deletionPolicyId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchDeletionPolicyApiUpdateRequestDto'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchDeletionPolicyApiResponseDto'
        '400':
          $ref: '#/components/responses/error_400'
        '401':
          $ref: '#/components/responses/error_401'
        '403':
          $ref: '#/components/responses/error_403'
        '404':
          $ref: '#/components/responses/error_404'
        '413':
          $ref: '#/components/responses/error_413'
        '429':
          $ref: '#/components/responses/error_429'
        '500':
          $ref: '#/components/responses/error_500'
components:
  schemas:
    BenchDeletionPolicyApiUpdateRequestDto:
      type: object
      properties:
        deletionFilter:
          $ref: '#/components/schemas/BenchDeletionFilter'
        deletionSetting:
          $ref: '#/components/schemas/BenchDeletionSetting'
    BenchDeletionFilterByResultName:
      type: object
      properties:
        resultNamePattern:
          type: string
    BenchDeletionFilter:
      type: object
      description: filter to select element for deletion.
      example:
        resultNamePattern: toRemove.*
      oneOf:
      - $ref: '#/components/schemas/BenchDeletionFilterByProject'
      - $ref: '#/components/schemas/BenchDeletionFilterByTestDto'
      - $ref: '#/components/schemas/BenchDeletionFilterByResultName'
    BenchDeletionSettingDurationDto:
      type: object
      properties:
        retentionDays:
          type: integer
          description: number of days before deletion
          format: int32
    BenchDeletionSetting:
      type: object
      description: Delete by time or number
      example:
        retentionCount: 5
      oneOf:
      - $ref: '#/components/schemas/BenchDeletionSettingCount'
      - $ref: '#/components/schemas/BenchDeletionSettingDurationDto'
    RateLimitError:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        retry-after:
          type: integer
    BenchDeletionFilterByTestDto:
      type: object
      properties:
        testSettingsId:
          type: string
          example: '{"testSettingsId: d6385e46-353b-409f-a494-7ca892edeaa6"}'
    BenchDeletionPolicyApiFullRequestDto:
      type: object
      properties:
        deletionFilter:
          $ref: '#/components/schemas/BenchDeletionFilter'
        deletionSetting:
          $ref: '#/components/schemas/BenchDeletionSetting'
    BenchDeletionPolicyApiResponseDto:
      type: object
      properties:
        deletionFilter:
          $ref: '#/components/schemas/BenchDeletionFilter'
        deletionSetting:
          $ref: '#/components/schemas/BenchDeletionSetting'
        id:
          type: string
        lastModifiedDate:
          type: string
          format: date-time
        lastModifiedUserName:
          type: string
        workspaceId:
          type: string
    BenchDeletionSettingCount:
      type: object
      properties:
        retentionCount:
          type: integer
          format: int32
    BenchDeletionFilterByProject:
      type: object
      properties:
        projectName:
          type: string
        scenarioName:
          type: string
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
      description: 'Existing error codes are:

        - HTTP 401 | Code: 101 | Message : Unauthorized, please provide an API token.

        - HTTP 429 | Code: 102 | Message : Too many requests, you reached your maximum number of requests per minute.

        - HTTP 403 | Code: 103 | Message : Unauthorized operation for the given API token, please provide an API token with sufficient privilege

        - HTTP 400 | Code: 104 | Message : Error while parsing json body.

        - HTTP 400 | Code: 105 | Message : Entity not in the specified Workspace.

        - HTTP 404 | Code: 201 | Message : Test Result not found.

        - HTTP 400 | Code: 202 | Message : Error while requesting the Test Result

        - HTTP 400 | Code: 203 | Message : Error while searching the Test Result

        - HTTP 400 | Code: 204 | Message : Type is mandatory as request parameter.

        - HTTP 400 | Code: 205 | Message : Invalid element type in request.

        - HTTP 400 | Code: 206 | Message : Error requesting aggregated values.

        - HTTP 400 | Code: 207 | Message : Error requesting elements.

        - HTTP 400 | Code: 208 | Message : Element ID is mandatory in request path.

        - HTTP 400 | Code: 209 | Message : Invalid element id in request.

        - HTTP 400 | Code: 210 | Message : Statistics is mandatory in request path.

        - HTTP 400 | Code: 211 | Message : Invalid statistic in request.

        - HTTP 400 | Code: 212 | Message : Error getting monitors.

        - HTTP 400 | Code: 213 | Message : Error getting monitor values.

        - HTTP 400 | Code: 214 | Message : Error getting monitor points.

        - HTTP 400 | Code: 215 | Message : Monitor ID is mandatory in request path.

        - HTTP 400 | Code: 216 | Message : Test ID is mandatory in request path.

        - HTTP 400 | Code: 217 | Message : Error while deleting the test. This test is not TERMINATED.

        - HTTP 400 | Code: 218 | Message : Error while deleting the test.

        - HTTP 400 | Code: 219 | Message : Error requesting aggregated points.

        - HTTP 400 | Code: 220 | Message : Error requesting SLA status for element.

        - HTTP 400 | Code: 221 | Message : Error updating a Test Result.

        - HTTP 404 | Code: 222 | Message : Fail to attach the Test Result to a Test because Test not found.

        - HTTP 204 | Code: 223 | Message : Update successful, no content.

        - HTTP 400 | Code: 224 | Message : Error while parsing json body for updating a test.

        - HTTP 400 | Code: 225 | Message : Error while parsing json body for custom monitors.

        - HTTP 400 | Code: 226 | Message : Error while creating custom monitors.

        - HTTP 400 | Code: 227 | Message : Path too long.

        - HTTP 400 | Code: 228 | Message : Clock Synchronization Issue: timestamp received before the beginning of the test.

        - HTTP 400 | Code: 229 | Message : Clock Synchronization Issue: timestamp received more than 10 minutes in the future.

        - HTTP 400 | Code: 230 | Message : Duplicate key: same timestamp and same path received in multiple requests.

        - HTTP 400 | Code: 231 | Message : Max number of Paths reached.

        - HTTP 400 | Code: 232 | Message : Max number of Monitors reached.

        - HTTP 400 | Code: 233 | Message : ''|'' character is not allowed.

        - HTTP 400 | Code: 234 | Message : A test is already launching.

        - HTTP 400 | Code: 235 | Message : Error while parsing the LG zones parameter.

        - HTTP 400 | Code: 236 | Message : NeoLoad project file ID does not exist.

        - HTTP 400 | Code: 237 | Message : NeoLoad project not found.

        - HTTP 400 | Code: 238 | Message : Upload project URL not found.

        - HTTP 400 | Code: 239 | Message : The scenario does not exist.

        - HTTP 400 | Code: 240 | Message : The size of the image to generate is invalid.

        - HTTP 400 | Code: 241 | Message : Reservation parameters are invalid.

        - HTTP 400 | Code: 242 | Message : Reservation duration must be at least 60 seconds.

        - HTTP 400 | Code: 243 | Message : Reservation not found.

        - HTTP 400 | Code: 244 | Message : Reservation is failed or not ready to use.

        - HTTP 400 | Code: 245 | Message : Reservation not matching scenario requirements: Number of virtual users.

        - HTTP 400 | Code: 246 | Message : Unauthorized Reservation

        - HTTP 400 | Code: 247 | Message : Error requesting SLA Per-Run of the Test Result.

        - HTTP 400 | Code: 248 | Message : Error requesting SLA Per-Run while the test is not terminated.

        - HTTP 400 | Code: 249 | Message : As-code file extension must be yaml, yml or json.

        - HTTP 400 | Code: 250 | Message : Error getting Test Results events.

        - HTTP 400 | Code: 251 | Message : Error requesting element.

        - HTTP 400 | Code: 252 | Message : Error requesting counter.

        - HTTP 400 | Code: 253 | Message : Invalid monitor id in request.

        - HTTP 400 | Code: 254 | Message : Invalid as-code file path.

        - HTTP 400 | Code: 255 | Message : Error requesting all zones.

        - HTTP 400 | Code: 256 | Message : Error requesting all reservations.

        - HTTP 400 | Code: 257 | Message : The date is not in the right format.

        - HTTP 400 | Code: 306 | Message : Date range invalid, start date should be before end date.

        - HTTP 400 | Code: 260 | Message : Requested statistics are not valid, PERCENTILES_DURATION must not be mixed with other element statistics neither with monitor statistic.

        - HTTP 400 | Code: 261 | Message : A test with the same name already exists.

        - HTTP 400 | Code: 262 | Message : Error while processing json body. It is not a valid json.

        - HTTP 400 | Code: 263 | Message : The name property is required.

        - HTTP 400 | Code: 264 | Message : The property lgZones is a bad format.

        - HTTP 404 | Code: 265 | Message : Test not found.

        - HTTP 400 | Code: 266 | Message : Format is mandatory as request parameter.

        - HTTP 400 | Code: 267 | Message : Invalid format in request.

        - HTTP 400 | Code: 268 | Message : This name is already used for a scenario in the project.

        - HTTP 400 | Code: 270 | Message : Fail to move to Workspace and attach to a Test because Test not in destination Workspace.

        - HTTP 400 | Code: 271 | Message : Fail to move to Workspace and attach to a Test.

        - HTTP 400 | Code: 272 | Message : The Test Result has been successfully moved to the specified Workspace and Test but other fields update failed.

        - HTTP 400 | Code: 275 | Message : Unknown stopPolicy value. Allowed are TERMINATE or GRACEFUL.

        - HTTP 400 | Code: 276 | Message : Error stopping the test.

        - HTTP 400 | Code: 277 | Message : Error stopping the test. The test is not running.

        - HTTP 400 | Code: 278 | Message : Zone does not exist.

        - HTTP 400 | Code: 279 | Message : Error starting the test.

        - HTTP 400 | Code: 280 | Message : The workspace id is mandatory.

        - HTTP 400 | Code: 281 | Message : The workspace name can''t be empty.

        - HTTP 400 | Code: 282 | Message : The workspace name already exist.

        - HTTP 400 | Code: 283 | Message : Can not delete default workspace.

        - HTTP 400 | Code: 284 | Message : The workspace can not be deleted : One or more tests are running.

        - HTTP 400 | Code: 285 | Message : Login(s) don''t exist : ${loginList}

        - HTTP 400 | Code: 286 | Message : Workspace id and name do not match, not proceeding.

        - HTTP 400 | Code: 287 | Message : Workspace is public (allUsersEnabled) : can not specify members.

        - HTTP 404 | Code: 288 | Message : The workspace does not exist.

        - HTTP 404 | Code: 289 | Message : No data found.

        - HTTP 400 | Code: 290 | Message : This user is still in the LDAP, to remove it from NLWeb, remove it from the LDAP. No need to call this endpoint.

        - HTTP 404 | Code: 291 | Message : This user does not exist.

        - HTTP 400 | Code: 292 | Message : This option is only allowed in NLWeb SaaS.

        - HTTP 400 | Code: 293 | Message : User self-deletion is forbidden.

        - HTTP 400 | Code: 294 | Message : Only allowed for users with Account Administrator roles (SaaS only role).

        - HTTP 400 | Code: 295 | Message : User "admin" cannot be deleted.

        - HTTP 400 | error: FILE_ID_NOT_FOUND | Message : File ID not found.

        - HTTP 400 | error: FILE_CANCELED | Message : Upload for file ID has been canceled.

        - HTTP 400 | error: INVALID_FILE_STATUS | Message : File status is invalid.

        - HTTP 400 | error: INVALID_FILE_ID | Message : Invalid file ID.

        - HTTP 400 | error: FILE_TOO_LARGE | Message : File is too large.

        - HTTP 400 | error: MAX_UPLOADED_FILES_REACHED | Message : Maximum uploaded files is reached.

        - HTTP 400 | error: PARSING_ERROR_NO_NLP | Message : No .nlp file found in project archive.

        - HTTP 400 | error: PARSING_ERROR_NO_SCENARIO_DEFINED | Message : No NeoLoad scenario found in project archive.

        - HTTP 400 | error: PARSING_INVALID_ZIP_STREAM | Message : Invalid stream, not a zip.

        - HTTP 400 | error: PARSING_INVALID_AS_CODE_FILE | Message : Invalid as-code file.

        - HTTP 400 | error: PARSING_INVALID_AS_CODE_FILE_PATH | Message : Invalid as-code file path found.

        - HTTP 400 | Code: 304 | Message : Invalid color in request.

        - HTTP 400 | Code: 305 | Message : The field elementPath is mandatory.

        - HTTP 400 | Code: 450 | Message : No Controller available in the given zone.

        - HTTP 400 | Code: 451 | Message : Controllers in the given zone can not be used, minimum version requirement not fulfilled.

        - HTTP 400 | Code: 452 | Message : Not enough Load Generator for available Controller versions, Controller and Load Generator need to have the same version in a run.

        - HTTP 400 | Code: 454 | Message : Not enough VU from license for running the test.

        - HTTP 400 | Code: 456 | Message : Not enough VU from reservation for running the test.

        - HTTP 400 | Code: 457 | Message : Reservation duration is not enough for running the test, it must be longer than the test duration increased by 20 minutes.

        - HTTP 400 | Code: 458 | Message : The number of Cloud Load Generators exceeds the current capacity. Please contact your NeoLoad representative.

        - HTTP 400 | Code: 459 | Message : The number of Dynamic Load Generators exceeds the current capacity. Please contact your NeoLoad representative.

        - HTTP 400 | Code: 460 | Message : The Neoload cloud platform is not available.

        - HTTP 400 | Code: 461 | Message : Not enough cloud credits available to start NCP infrastructure.

        - HTTP 400 | Code: 462 | Message : Not enough VUH available for running the test.

        - HTTP 400 | Code: 463 | Message : Not enough concurrent runs available.

        - HTTP 503 | Code: 300 | Message : An unexpected error occurred while processing the request.

        - HTTP 501 | Code: 301 | Message : Not supported when the reservation mode is enabled.

        - HTTP 501 | Code: 302 | Message : Not supported when the reservation mode is OFF.

        - HTTP 413 | Message : Request Entity Too Large.

        '
  responses:
    error_413:
      description: Request entity too large.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    error_403:
      description: You are not allowed to process this request. Please verify the parameters and try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    error_400:
      description: An error occurred while processing the request. Please verify the parameters and try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    error_404:
      description: Resource not found. Please verify the parameters and try again.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    error_429:
      description: Too many requests. Your maximum number of requests per minute is reached. Try again soon.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitError'
    error_500:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    error_401:
      description: Unauthorized. You must provide an API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    NeoloadAuthorizer:
      type: apiKey
      name: accountToken
      in: header