Wegalvanize Compliance Maps API

You can use Compliance Maps to associate industry standards and regulations with your control frameworks. Learn more.

OpenAPI Specification

wegalvanize-compliance-maps-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: HighBond API Reference Actions Compliance Maps API
  version: 1.1.0
  description: "\nWelcome to the API documentation for HighBond.\n\n## Introduction\nThe HighBond API is the developer interface for the HighBond platform. You can use it to automate interactions with HighBond,\nbuild reporting, and integrate HighBond with other systems in your company. This introduction contains information you should\nknow before you get started.\n\nThe HighBond API is organized around <a href=\"https://en.wikipedia.org/wiki/Representational_state_transfer\" target=\"_blank\">REST</a> and is built on the\n<a href=\"https://jsonapi.org/format/\" target=\"_blank\">JSON API v1.0 specification</a>.\n\n> **Warning —**\nThis API interacts with your company's live data. It gives you the power to delete important data that your\ncompany needs. Carefully consider the consequences of your actions when using this API. If you are not sure, contact the\nperson or group who administers HighBond in your company.\n\n### Permissions\nUsers can generate and manage API tokens in their user profiles in HighBond. Because these tokens are tied to users, not companies, your permissions in the API are the same as your permissions in HighBond.\n\n> **Note —**\nYou must be a System Admin in at least one HighBond instance to access the API.\n\nIf you leave your company and your HighBond user account is deleted, your application will break. Before getting started, consider the long-term requirements of your application. You may wish to create a system account in HighBond and build your application from that, but verify that your company's security policies permit accounts that aren't tied to particular people.\n\nHighBond uses the <a href=\"https://tools.ietf.org/html/rfc6749\" target=\"_blank\">OAuth 2.0 authorization framework</a> to control access to the API.\n\n\n### Apps\nApps are components in HighBond that provide specific functionality. You can use this API to interact with data in the apps you have access to.\n\nThe apps available to you depend on the edition of HighBond (standard or premium) in use, and whether or not your company has purchased any add-on apps.\nFor more information, see <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-product-editions\" target=\"_blank\">Subscriptions, editions, and capabilities</a>.\n\n### Rate limitations\nThe API safeguards against bursts of usage to help maximize its stability. For most endpoints, you cannot make more than 6 requests per second.\n\nThe following endpoints have a stricter rate limitation of 3 requests per minute:\n\n* Groups\n* Users\n\nTreat these limits as a maximum and avoid making unnecessary requests to the API.\n\nIf you make too many requests, the API responds with a `429` \"Too many requests\" status.\n\n## Getting started\nTo start interacting with your HighBond organization via the API, you need a few things:\n\n* An authentication token from your HighBond instance\n* The correct region URL for your HighBond instance\n* Information about the HighBond instance and resource IDs you want to interact with\n\nIf you need assistance with any of these, contact a HighBond administrator at your company, or email <a href=\"mailto:support@wegalvanize.com\">support@wegalvanize.com</a>.\n\n### Authentication\nAll requests require authentication. To authenticate, use Launchpad to create a HighBond API (bearer) token for your account. The token is a string that authenticates you\nand allows you to securely access the HighBond API.\n\nFor help creating a token, see <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-access-tokens\" target=\"_blank\">Creating and managing access tokens</a>.\n\nOnce you have created your token, you can provide it in the header of your request:\n```\nAuthorization: Bearer <TOKEN>\n```\n > **Important —**\nIf you do not authenticate yourself, the API fails. The API responds to authentication failures with a `401` \"Bad credentials\" status.\n\n<security-definitions />\n\n### Token security\nHighBond uses the <a href=\"https://tools.ietf.org/html/rfc6749#section-1.3.1\" target=\"_blank\">Authorization Code workflow</a> to generate tokens.\n\nTo enable continuous access to the API, and to provide full ownership and accountability to users, Galvanize does not impose an expiration date\non the token. You can <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-access-tokens\" target=\"_blank\">delete a token in\nLaunchpad</a> when you no longer need access to the API.\n\n> **Important —**\nYour access token provides many privileges, so keep it secure and private. Galvanize recommends that you encrypt your\nmachine to securely store the token. Avoid sharing your token in publicly accessible areas such GitHub or within client-side code.\n\n### API regions\n\nThe HighBond service is provided from different regions in order to give customers options for where your data is stored, and to enable you to\ncomply with data privacy location requirements.\n\nYour request URL must include one of the following region codes, based on where your HighBond instance resides:\n\n* **United States** — `https://apis-us.diligentoneplatform.com`\n* **Canada** — `https://apis-ca.diligentoneplatform.com`\n* **Europe** — `https://apis-eu.diligentoneplatform.com`\n* **Asia** — `https://apis-ap.diligentoneplatform.com`\n* **Australia** — `https://apis-au.diligentoneplatform.com`\n* **Africa** — `https://apis-af.diligentoneplatform.com`\n* **South America** — `https://apis-sa.diligentoneplatform.com`\n* **Japan** — `https://apis-jp.diligentoneplatform.com`\n\nAdditionally, for government clients, there are two government \"regions\":\n* **Gov** (US federal) — `https://apis.diligentoneplatform-gov.com`\n* **SLED** (state, local, and education; non-federal) — `https://apis.diligentoneplatform-gov2.com`\n\n> **Important —**\nAll API requests must be made over <a href=\"https://en.wikipedia.org/wiki/HTTPS\" target=\"_blank\">HTTPS</a>. Calls over HTTP respond with the `301` \"Moved Permanently\" status.\n\n\n### HighBond instance and resource IDs\nRequests require a HighBond instance ID and the ID of the resource you are interacting with. These IDs are numeric keys that uniquely\nidentify the HighBond instance and every resource in that instance.\n\nThe easiest way to get your HighBond instance ID is to log in to HighBond and take the ID from the URL:\n```\nhttps://accounts.highbond.com/orgs/12345\n```\n\nTo obtain IDs for resources like collections, analyses, tables, and robots, you can navigate to the item you want to reference, and take the IDs from the URL.\nFor example, this URL shows a collection ID:\n```\nhttps://example-company.results.highbond.com/projects/55843\n```\n\n> **Tip —**\nThe `GET` methods in this API also return IDs that you can use to identify resources you can act on.\n\n\n## Making requests\nOnce you have all the information you need, you can start making requests in an API client of your choice.\n\n### HTTP methods\nThe API uses the appropriate HTTP method for each action:\n* `GET` — used for retrieving resources\n* `POST` — used for creating resources\n* `PUT` / `PATCH` — used for updating resources\n* `DELETE` — used for deleting resources\n\n\n### Content type\nAlways specify the `Content-Type` of your request in the header. Supported content types are:\n* JSON API\n* JSON (for backwards compatibility)\n\n```\nContent-Type: application/vnd.api+json\nContent-Type: application/json\n```\n\nA complete **Get a table** request using `curl` would look like this:\n```\ncurl -H \"Authorization: Bearer XYZ\" -H \"Content-Type: application/vnd.api+json\" https://apis-us.highbond.com/v1/orgs/11594/tables/388930\n```\n\n### Requesting the API to return only specific fields\nFor certain resources, such as control tests, you can request the API to return only specific fields using the `fields` query parameter. Sparse fieldsets are\nhelpful for limiting your responses to only the data you require.\n\n> **Note —**\nThe `type` argument must specify the resource you want to retrieve. The value of the `fields` parameter must be a comma-delimited list that specifies\nthe name of the field(s) to be returned. Avoid whitespace before or after each comma.\n```\nfields[type]=field_name1,field_name2,fieldname3\n```\n\nA complete **Get a control test** request that only returns the `assigned_user`, `control`, and `testing_round_number` fields would look like this:\n\n```\ncurl -H \"Authorization: Bearer XYZ\" -H \"Content-Type: application/vnd.api+json\" https://apis-us.highbond.com/v1/orgs/12345/control_tests/105?fields[control_tests]=assigned_user,control,testing_round_number\n```\n\n### Requesting the API to return related resources\nTo reduce the number of requests, you may use the `include` query parameter to return related resources in the response along with the requested primary resources. Such responses are called \"compound documents\".\n\nAccepted values for the `include` parameter are documented in the `Query Parameters` section of each API method.\n\n> **Note —**\nThe `include` parameter must be a comma-delimited list that specifies\nthe name of the relationship(s) or nested relationship(s) to be returned. Avoid whitespace before or after each comma.\n\nExample - requesting a relationship and a nested relationship\n```\ninclude=control,control.objective\n```\n\nA complete **Get a control test** request that returns the `control` relationship, and `control.objective` nested relationship would look like this:\n\n```\ncurl -H \"Authorization: Bearer XYZ\" -H \"Content-Type: application/vnd.api+json\" https://apis.highbond.com/v1/orgs/12345/control_tests/105?include=control,control.objective\n```\n\n\n### Blank fields\nBlank fields are included in all response schemas as `\"\"` or `null` instead of being omitted.\n\n\n### Time zones\nAll timestamps are returned in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.\n\nSome requests that create new data, such as creating a robot task's schedule, allow you to provide time zone information.\nFor API requests that allow for a timestamp to be specified, you must explicitly provide an ISO 8601 timestamp with time zone information.\n\n```\n\"starts_at\": \"2019-03-21T16:25:00.478Z\",\n\"starts_at_timezone\": \"America/Los_Angeles\",\n```\n\n\n### Rich text fields\n\nSome requests and responses contain rich text fields that include HTML tags. These are typically description fields. If you need to format text,\nthe best approach is to upload your raw data first and apply formatting later in the user interface.\n\n> **Note —**\nImages that exist in rich text fields are returned in responses, but they are not rendered. You cannot upload new images to rich text fields using the API.\n\n\n### User identifiers\nA unique identifier (UID) is an alphanumeric string that is associated with a user in HighBond. UIDs make it possible to address users,\nso that they can be accessed and interacted with using the API. Some requests that allow you to assign items to users, such as creating an objective,\nrequire you to specify a user's UID.\n\nTo obtain a user's UID:\n\n1. Sign in to <a href=\"https://accounts.highbond.com/login\" target=\"_blank\">HighBond</a>.\n2. If your company uses more than one instance in HighBond, make sure <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-switch-instances\"\ntarget=\"_blank\">the appropriate instance is active</a>.\n3. Select **Options > Users (#)**.\n4. Navigate to the appropriate user and click the user's name.\n5. In the **User Details** side panel, copy the UID to your clipboard.\nOnce you have copied the UID, you can specify it in your request.\n\n\n### Pagination\nWhen a response consists of a large number of items, the API breaks it into separate pages for performance reasons. You can control the way the API paginates your results by specifying how many items you want to have per page, and which page you want the API to return.\n\nFor example, if you request a list of controls, the request could look like this: `{protocol}://{server}/v1/orgs/{org_id}/objectives/{objective_id}/controls?page[size]=25&page[number]=Mg==`\n\nWhere:\n\n* `page[size]=25` specifies that there should be 25 items per page. Different endpoints have different default values and maximum numbers of values you can have per page.\n* `page[number]=Mg==` specifies that the API should return the second page of results (the 26th through 50th items that match the request).\n\n > **Note —**\n In most cases, page numbers must be encoded in Base64. In this example, `Mg==` is the Base64 encoded value for `2`.\n\nAdditionally, responses include the `links` parameter, which provides URLs for the `prev` and `next` attributes (or `null` values if all of the items are on one page). Those URLs include the above parameters, so you can paste them into subsequent requests if needed.\n\n\n\n## Errors\nHighBond uses standard <a href=\"https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\" target=\"_blank\">HTTP response codes</a>\nto indicate the success or failure of a request. The range of a code indicates information about why it succeeded or failed:\n\n* **`2xx` range —** Success\n* **`4xx` range —** Error given the information provided\n* **`5xx` range —** Server failed to fulfil a valid request\n\nSome common errors that occur when making requests include:\n* **`400` Bad request —** When a parameter is missing (such as the `org_id` or resource `id`), when more\nthan one unique resource is specified in the request, or when a specified data type is incompatible with the endpoint\n* **`401` Bad credentials —** When there is an authentication error\n* **`403` Forbidden —** When there is an authorization problem based on your <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-managing-apps\"\ntarget=\"_blank\">role in a HighBond app</a> or <a href=\"https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=lp-assigning-subscriptions\" target=\"_blank\">subscription</a>\n* **`404` Not found —** When there is a problem on the client side due to an incorrect URL or resource deletion\n* **`415` Unsupported media type —** When the `Content-Type` specified is unsupported\n* **`422` Unprocessable entity —** When a required attribute is missing (such as the name of a resource), or when a conflict occurs\n(such as a script activation conflict)\n\n\n## Versioning\nAll API endpoints use a version number in the path. As can be seen in the examples, `/v1/` specifies version 1 of the API.\n\nOver time, the API will evolve. New API versions will be introduced and existing versions may be updated.\n\nSome API updates are considered a breaking change, requiring a new version of the API to be introduced. An example of a breaking\nchange is fields being changed or removed. By introducing a new version, API consumers can safely continue to use prior API versions.\n\nThe other type of API update is a non-breaking change. You should expect non-breaking change updates to existing API versions.\nAn example of a non-breaking change is adding a field to a response object. Non-breaking changes are additive. While they do\nchange the response body, they should not impact the API consumer.\n"
  x-logo:
    url: ./assets/logo.png
    altText: HighBond Logo
servers:
- url: '{protocol}://{server}/v1'
  variables:
    protocol:
      default: https
    server:
      default: apis-us.highbond.com
      enum:
      - apis-us.highbond.com
      - apis-ca.highbond.com
      - apis-eu.highbond.com
      - apis-ap.highbond.com
      - apis-au.highbond.com
      - apis-af.highbond.com
      - apis-sa.highbond.com
      - apis-jp.highbond.com
security:
- bearerToken: []
tags:
- name: Compliance Maps
  description: 'You can use Compliance Maps to associate industry standards and regulations with your control frameworks.


    <a href="https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=pm-compliance-maps" target="_blank">Learn more</a>.

    '
paths:
  /orgs/{org_id}/compliance_regulations:
    get:
      tags:
      - Compliance Maps
      operationId: getComplianceRegulations
      summary: Get compliance regulations
      description: 'Get a list of all compliance regulations in an organization.


        > **Note —**

        Only root users can read the `premium` and `subscription_types` attributes.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/complianceRegulationSparseFieldsetParams'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumberEncodedParam'
      - $ref: '#/components/parameters/complianceRegulationsFilterNameParam'
      - $ref: '#/components/parameters/complianceRegulationsFilterExternalIdParam'
      - $ref: '#/components/parameters/complianceRegulationsSortParam'
      - $ref: '#/components/parameters/complianceRegulationsParitalResultsParam'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRegulationsResponse'
        '400':
          $ref: '#/components/responses/MissingOrgId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/ContentTooLargeError'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
    post:
      tags:
      - Compliance Maps
      operationId: createComplianceRegulation
      summary: Create a compliance regulation
      description: 'Create a new compliance regulation in an existing organization.


        <strong>Limitations</strong>:

        * There can be a maximum of 500 compliance regulations per HighBond instance.


        > **Note —**

        System and root users can edit the `disclaimer`, `report_disclaimer`, `requirement_disclaimer` and `locked` attributes. Only root users can edit the `premium` and `subscription_types` attributes.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/complianceRegulationSparseFieldsetParams'
      requestBody:
        description: The data required to create a regulation.
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CreateComplianceRegulationRequest'
      responses:
        '201':
          description: Created.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRegulationResponse'
        '400':
          $ref: '#/components/responses/ResourceTypeMismatch'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
        '422':
          description: 'Unprocessable entity.

            '
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                - status: 422
                  source:
                    pointer: /data/attributes/name
                  code: invalid_resource
                  detail: can't be blank
  /orgs/{org_id}/compliance_regulations/{id}:
    get:
      tags:
      - Compliance Maps
      operationId: getComplianceRegulation
      summary: Get a compliance regulation
      description: 'Get information about a compliance regulation.


        > **Note —**

        Only root users can read the `premium` and `subscription_types` attributes.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      - $ref: '#/components/parameters/complianceRegulationSparseFieldsetParams'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRegulationResponse'
        '400':
          $ref: '#/components/responses/MissingResourceId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/ContentTooLargeError'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
    patch:
      tags:
      - Compliance Maps
      operationId: updateComplianceRegulation
      summary: Update a compliance regulation
      description: 'Make changes to a compliance regulation in an organization.


        > **Note —**

        System and root users can edit the `disclaimer`, `report_disclaimer`, `requirement_disclaimer` and `locked` attributes. Only root users can edit the `premium` and `subscription_types` attributes.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      - $ref: '#/components/parameters/complianceRegulationSparseFieldsetParams'
      requestBody:
        description: The data required to update a regulation.
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/UpdateComplianceRegulationRequest'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRegulationResponse'
        '400':
          $ref: '#/components/responses/MissingResourceId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
        '422':
          description: 'Unprocessable entity.

            '
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                - status: 422
                  source:
                    pointer: /data/attributes/name
                  code: invalid_resource
                  detail: can't be blank
    delete:
      tags:
      - Compliance Maps
      operationId: deleteComplianceRegulation
      summary: Delete a compliance regulation
      description: 'Permanently delete a compliance regulation from an organization.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /orgs/{org_id}/compliance_regulations/{compliance_regulation_id}/compliance_requirements:
    get:
      tags:
      - Compliance Maps
      operationId: getComplianceRequirements
      summary: Get compliance requirements
      description: Get a list of all compliance requirements in a regulation.
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/complianceRegulationIdParam'
      - $ref: '#/components/parameters/complianceRequirementSparseFieldsetParams'
      - $ref: '#/components/parameters/complianceMappingSparseFieldsetParams'
      - $ref: '#/components/parameters/pageSizeParam'
      - $ref: '#/components/parameters/pageNumberEncodedParam'
      - $ref: '#/components/parameters/complianceRequirementsFilterIdentifierParam'
      - $ref: '#/components/parameters/complianceRequirementsFilterNameParam'
      - $ref: '#/components/parameters/complianceRequirementsSearchParam'
      - $ref: '#/components/parameters/complianceRequirementsParentIdParam'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRequirementsResponseWithIncludes'
        '400':
          $ref: '#/components/responses/MissingOrgId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/ContentTooLargeError'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
    post:
      tags:
      - Compliance Maps
      operationId: createComplianceRequirement
      summary: Create a compliance requirement
      description: 'Create a new compliance requirement in an existing organization.


        <strong>Limitations</strong>:

        * There can be a maximum of 5000 compliance requirements per compliance regulation.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/complianceRegulationIdParam'
      - $ref: '#/components/parameters/complianceRequirementSparseFieldsetParams'
      - $ref: '#/components/parameters/complianceMappingSparseFieldsetParams'
      requestBody:
        description: The data required to create a requirement.
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CreateComplianceRequirementRequest'
      responses:
        '201':
          description: Created.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRequirementResponseWithIncludes'
        '400':
          $ref: '#/components/responses/ResourceTypeMismatch'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
        '422':
          description: 'Unprocessable entity.

            '
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                - status: 422
                  source:
                    pointer: /data/attributes/description
                  code: invalid_resource
                  detail: can't be blank
  /orgs/{org_id}/compliance_requirements/{id}:
    get:
      tags:
      - Compliance Maps
      operationId: getComplianceRequirement
      summary: Get a compliance requirement
      description: Get information about a compliance requirement.
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      - $ref: '#/components/parameters/complianceRequirementSparseFieldsetParams'
      - $ref: '#/components/parameters/complianceMappingSparseFieldsetParams'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRequirementResponseWithIncludes'
        '400':
          $ref: '#/components/responses/MissingResourceId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/ContentTooLargeError'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
    patch:
      tags:
      - Compliance Maps
      operationId: updateComplianceRequirement
      summary: Update a compliance requirement
      description: Make changes to a compliance requirement in an organization.
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      - $ref: '#/components/parameters/complianceRequirementSparseFieldsetParams'
      - $ref: '#/components/parameters/complianceMappingSparseFieldsetParams'
      requestBody:
        description: The data required to update a requirement.
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/UpdateComplianceRequirementRequest'
      responses:
        '200':
          description: OK.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetComplianceRequirementResponseWithIncludes'
        '400':
          $ref: '#/components/responses/MissingResourceId'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/NotJsonapiMediaType'
        '422':
          description: 'Unprocessable entity.

            '
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                - status: 422
                  source:
                    pointer: /data/attributes/description
                  code: invalid_resource
                  detail: can't be blank
    delete:
      tags:
      - Compliance Maps
      operationId: deleteComplianceRequirement
      summary: Delete a compliance requirement
      description: 'Permanently delete a compliance requirement from an organization.

        '
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/resourceIdParam'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '401':
          $ref: '#/components/responses/BadCredentials'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /orgs/{org_id}/related_requirements:
    post:
      tags:
      - Compliance Maps
      operationId: postRelatedRequirement
      summary: Create a link between requirements
      description: <p>Organizations typically need to be compliant with multiple standards and regulations that may have related or overlapping requirements. Related requirements indicate that controls implemented for one requirement should effectively address another (related) requirement.</p> <p>To link two requirements, you need the requirement ID for each requirement, whether the related requirement supports or overlaps the first requirement, the strength of the relationship, and whether the link should be active or not. When you create a link, that link is tracked with a unique ID, which you can use again later to update or delete that relationship.</p> <p>Use the related requirements feature at your discretion and risk. You are responsible to apply professional judgment to determine the appropriate procedures, tests, or controls for your own use. <a href="https://help.highbond.com/helpdocs/highbond/en-us/Default.htm#cshid=pm-relationships-controls-requirements">Learn more</a>.</p>
      parameters:
      - $ref: '#/components/parameters/orgIdParam'
      - $ref: '#/components/parameters/relatedComplianceRequirementSparseFieldsetParamsPost'
      requestBody:
        description: The data required to create a link between requirements.
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/CreateRelatedRequirementRequest'
      responses:
        '201':
          description: Created.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/CreateRelatedRequirementResponse'
        '400':
          $ref: '#/componen

# --- truncated at 32 KB (138 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wegalvanize/refs/heads/main/openapi/wegalvanize-compliance-maps-api-openapi.yml