Scalr Farm Roles API

The Farm Roles API from Scalr — 13 operation(s) for farm roles.

OpenAPI Specification

scalr-farm-roles-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: Manage Roles, Images, Environments and etc.
  title: Scalr Account Acl Roles Farm Roles API
  version: 1.0.0
basePath: /api/v1beta0/account
produces:
- application/json
tags:
- name: Farm Roles
paths:
  /{envId}/farm-roles/{farmRoleId}/:
    parameters:
    - description: The ID of the Environment scoping this request.
      in: path
      name: envId
      required: true
      type: integer
    - description: The ID of a FarmRole object.
      in: path
      name: farmRoleId
      required: true
      type: integer
      x-references:
        $ref: '#/definitions/FarmRole'
    delete:
      description: Remove a given Farm Role from its Farm.
      responses:
        204:
          description: Farm Role deleted.
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
    get:
      description: Retrieve detailed information about a given Farm Role.
      responses:
        200:
          description: The JSON representation of a FarmRole object.
          schema:
            $ref: '#/definitions/FarmRoleDetailsResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
    patch:
      description: Modify the attributes of a Farm Role.
      parameters:
      - description: The JSON representation of a FarmRole object.
        in: body
        name: farmRoleObject
        required: true
        schema:
          $ref: '#/definitions/FarmRole'
      responses:
        200:
          description: The JSON representation of a FarmRole object.
          schema:
            $ref: '#/definitions/FarmRoleDetailsResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
  /{envId}/farm-roles/{farmRoleId}/actions/clone/:
    parameters:
    - description: The ID of the Environment scoping this request.
      in: path
      name: envId
      required: true
      type: integer
    - description: The ID of a FarmRole object.
      in: path
      name: farmRoleId
      required: true
      type: integer
      x-references:
        $ref: '#/definitions/FarmRole'
    post:
      description: Clone a given FarmRole within current Farm or to another Farm.
      parameters:
      - description: FarmRole cloning options.
        in: body
        name: cloneFarmRoleRequest
        required: true
        schema:
          properties:
            farm:
              $ref: '#/definitions/FarmForeignKey'
              description: Identifier of the Farm to clone into. If omitted, current Farm is a target to clone the FarmRole.
            name:
              description: New alias name for the FarmRole being cloned.
              type: string
          required:
          - name
      responses:
        201:
          description: The JSON representation of a FarmRole object.
          schema:
            $ref: '#/definitions/FarmRoleDetailsResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
  /{envId}/farm-roles/{farmRoleId}/actions/generate-template/:
    parameters:
    - description: The ID of the Environment scoping this request.
      in: path
      name: envId
      required: true
      type: integer
    - description: The ID of a FarmRole object.
      in: path
      name: farmRoleId
      required: true
      type: integer
      x-references:
        $ref: '#/definitions/FarmRole'
    get:
      description: Get FarmRole Template body for given FarmRole.
      responses:
        200:
          description: The JSON representation of a FarmRoleTemplate object.
          schema:
            $ref: '#/definitions/FarmRoleTemplateDetailsResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
  /{envId}/farm-roles/{farmRoleId}/actions/import-server/:
    parameters:
    - description: The ID of the Environment scoping this request.
      in: path
      name: envId
      required: true
      type: integer
    - description: The ID of a FarmRole object.
      in: path
      name: farmRoleId
      required: true
      type: integer
      x-references:
        $ref: '#/definitions/FarmRole'
    post:
      description: Import a running server from a Cloud Platform to a Scalr Farm Role.
      parameters:
      - description: Server import settings.
        in: body
        name: importServerRequest
        required: true
        schema:
          properties:
            cloudServerId:
              description: Identifier of the instance on the cloud to import.
              type: string
            tags:
              description: The list of tags that should be applied to the server on the Cloud.
              items:
                $ref: '#/definitions/Tag'
              type: array
          required:
          - cloudServerId
      responses:
        201:
          description: The JSON representation of a ServerSummary object.
          schema:
            $ref: '#/definitions/ServerSummaryDetailsResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: These changes aren't possible while this object is in use.
            name: ObjectInUse
          - description: These changes would violate a policy.
            name: PolicyViolation
          - description: These changes would violate a unicity constraint.
            name: UnicityViolation
          - description: Some of the objects being changed are locked and cannot be changed.
            name: Locked
          - description: This Cloud platform is not enabled.
            name: NotEnabledPlatform
          - description: The Operating System does not match.
            name: OperatingSystemMismatch
          - description: Some of the objects or actions being access are deprecated.
            name: Deprecated
          - description: The action can't be perfomed in the current object's state.
            name: UnacceptableState
          - description: The object that you are trying to access does not exist on the cloud.
            name: ObjectNotFoundOnCloud
          - description: Some of these settings cannot be applied, they either conflict with the current state or are invalid.
            name: UnacceptableObjectConfiguration
        422:
          description: This request was well-formed but was rejected due to semantic errors.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: Some of the configuration settings cannot be applied because they conflict with the current state.
            name: ConfigurationMismatch
        500:
          description: A server-side error occurred.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        501:
          description: This feature is not implemented in Scalr.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
        503:
          description: The service is currently unavailable.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
      tags:
      - Farm Roles
  /{envId}/farm-roles/{farmRoleId}/global-variables/:
    parameters:
    - description: The ID of the Environment scoping this request.
      in: path
      name: envId
      required: true
      type: integer
    - description: The ID of a FarmRole object.
      in: path
      name: farmRoleId
      required: true
      type: integer
      x-references:
        $ref: '#/definitions/FarmRole'
    get:
      description: List all the Global Variables associated with this Farm Role.
      responses:
        200:
          description: A list of GlobalVariable objects.
          schema:
            $ref: '#/definitions/GlobalVariableListResponse'
        400:
          description: A client-side error was made.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was structurally incorrect, and was not understood by the API.
            name: InvalidStructure
          - description: The request was understood by the API, but included invalid data.
            name: InvalidValue
          - description: The request wasn't understood by the API.
            name: BadRequest
        401:
          description: The request was not authenticated.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: The request was not properly authenticated.
            name: BadAuthentication
        403:
          description: Insufficient permissions.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This request should be made in a different Scope.
            name: ScopeViolation
          - description: You do not have the necessary permissions to perform this request.
            name: PermissionViolation
          - description: The maximum memory limit in GB has been reached.
            name: MemoryQuotaExceeded
          - description: The vCPUs limit has been reached.
            name: VcpusQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume has been reached.
            name: ServersQuotaExceeded
          - description: The maximum number of the Servers that you can launch or resume on current Farm has been reached.
            name: ServersPerFarmQuotaExceeded
        404:
          description: Resource not found.
          schema:
            $ref: '#/definitions/ApiErrorResponse'
          x-errorCodes:
          - description: This endpoint does not exist.
            name: EndpointNotFound
            noDoc: true
          - description: The object you are trying to access does not exist.
            name: ObjectNotFound
        409:
          description: Conflict with current state.

# --- truncated at 32 KB (261 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/scalr/refs/heads/main/openapi/scalr-farm-roles-api-openapi.yml