{
  "opencollection": "1.0.0",
  "info": {
    "name": "Opal API (⚠️  WIP)",
    "version": "3.0.0"
  },
  "items": [
    {
      "info": {
        "name": "Boards",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Boards available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/boards/v3",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "A JSON:API [sparse fieldset](https://jsonapi.org/format/#fetching-sparse-fieldsets) declaration. The resource type can be that of the primary resource (i.e. `board`) or any of the included resources (e.g. `title` or `workspace`).\n"
              },
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response body should be sorted, where each value is an attribute of the board. When specifying multiple values, each value in the sequence determines the ordering precedence.\n\nEach board in the collection will appear in ascending order, unless any of the enumerated values are prefixed with a minus \"-\" sign, in which case each board will appear in descending order for the specified values.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Boards available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Board.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/boards/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Board."
        },
        {
          "info": {
            "name": "Get a Board.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/boards/v3/:board_id",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Board."
        },
        {
          "info": {
            "name": "Update an existing Board.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/boards/v3/:board_id",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Board."
        },
        {
          "info": {
            "name": "Delete a Board.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/boards/v3/:board_id",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Board."
        },
        {
          "info": {
            "name": "[UNSTABLE] Update the user’s settings for a given Board",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/boards/v3/:board_id/user_setting",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Update the user’s settings for a given Board"
        },
        {
          "info": {
            "name": "Get Object Collections available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_object_collections/v3",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Object Collections available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Board Object Collection.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/board_object_collections/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Board Object Collection."
        },
        {
          "info": {
            "name": "Get a Board Object Collection.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_object_collections/v3/:board_object_collection_id",
            "params": [
              {
                "name": "board_object_collection_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object Collection."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Board Object Collection."
        },
        {
          "info": {
            "name": "Update a new Board Object Collection.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/board_object_collections/v3/:board_object_collection_id",
            "params": [
              {
                "name": "board_object_collection_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object Collection."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update a new Board Object Collection."
        },
        {
          "info": {
            "name": "Delete an Object Collection.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/board_object_collections/v3/:board_object_collection_id",
            "params": [
              {
                "name": "board_object_collection_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object Collection."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete an Object Collection."
        }
      ]
    },
    {
      "info": {
        "name": "Board Columns",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Board Columns available to the authenticated user and Board.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/boards/v3/:board_id/board_columns",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Board Columns available to the authenticated user and Board."
        },
        {
          "info": {
            "name": "Update an existing Board Column.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/boards/v3/:board_id/board_columns/:board_column_id",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "board_column_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Column."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Board Column."
        }
      ]
    },
    {
      "info": {
        "name": "Board Duplication",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Duplicate an existing board.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/boards/v3/:board_id/board_duplication",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Duplicate an existing board."
        },
        {
          "info": {
            "name": "Get the status of a board duplication.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/boards/v3/:board_id/board_duplication/:id",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board duplication."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the status of a board duplication."
        }
      ]
    },
    {
      "info": {
        "name": "Board User Settings",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[UNSTABLE] Get the user’s settings for a given Board",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/boards/v3/:board_id/user_setting",
            "params": [
              {
                "name": "board_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get the user’s settings for a given Board"
        }
      ]
    },
    {
      "info": {
        "name": "Board Collaborators",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Board Collaborators available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_collaborators/v3",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Board Collaborators available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Board Collaborator for a private Board.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/board_collaborators/v3",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Board Collaborator for a private Board."
        },
        {
          "info": {
            "name": "Get a Board Collaborator",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_collaborators/v3/:board_collaborator_id",
            "params": [
              {
                "name": "board_collaborator_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Collaborator."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Board Collaborator"
        },
        {
          "info": {
            "name": "Delete a Board Collaborator for a private Board.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/board_collaborators/v3/:board_collaborator_id",
            "params": [
              {
                "name": "board_collaborator_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Collaborator."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Board Collaborator for a private Board."
        }
      ]
    },
    {
      "info": {
        "name": "Board Objects",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Board Objects available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_objects/v3",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "A JSON:API [sparse fieldset](https://jsonapi.org/format/#fetching-sparse-fieldsets) declaration. The resource type can be that of the primary resource (i.e. `board_object`) or any of the included resources (e.g. `moment` or `story`).\n"
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Board Objects available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Board Object.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/board_objects/v3",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Board Object."
        },
        {
          "info": {
            "name": "Get a Board Object",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/board_objects/v3/:board_object_id",
            "params": [
              {
                "name": "board_object_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "A JSON:API [sparse fieldset](https://jsonapi.org/format/#fetching-sparse-fieldsets) declaration. The resource type can be that of the primary resource (i.e. `board_object`) or any of the included resources (e.g. `moment` or `story`).\n"
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Board Object"
        },
        {
          "info": {
            "name": "Update an existing Board Object.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/board_objects/v3/:board_object_id",
            "params": [
              {
                "name": "board_object_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Board Object."
        },
        {
          "info": {
            "name": "Delete a Board Object.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/board_objects/v3/:board_object_id",
            "params": [
              {
                "name": "board_object_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Board Object."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Board Object."
        }
      ]
    },
    {
      "info": {
        "name": "Board Standard Columns",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List all standard columns available for Board tables.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/board_standard_columns",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "List all standard columns available for Board tables."
        }
      ]
    },
    {
      "info": {
        "name": "Bulk Operations",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[PROPOSED] Create a new Bulk Operation resource.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/bulk_operations",
            "params": [
              {
                "name": "sync",
                "value": "",
                "type": "query",
                "description": "By default, an operation will be created with the `pending` status. It will\nreturn early and complete asynchronously. When this parameter is `true`,\nall operations will be processed synchronously and completely within one\nrequest, and the server will not respond until all operations have\ncompleted.\n\nThis option should be used with care as longer-running requests have the\npotential to time out.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Create a new Bulk Operation resource."
        },
        {
          "info": {
            "name": "[PROPOSED] Get Bulk Operation available to the authenticated user by ID.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/bulk_operations/:bulk_operation_id",
            "params": [
              {
                "name": "bulk_operation_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Bulk Operation."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Get Bulk Operation available to the authenticated user by ID."
        }
      ]
    },
    {
      "info": {
        "name": "Channels",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[UNSTABLE] Get Channels available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/channels",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\nAll timestamp filters (`created_at`, `updated_at`, and `scheduled_at`), use syntax `filter[field_name][gt]=2020-01-01T00:00:00-07:00`\nTimestamps use iso8601 formatting, such as `YYYY-MM-DD` or `YYYY-MM-DDThh:mmTZD`.Timestamps of the form `YYYY-MM-DD` will be converted to `YYY-MM-DDT00:00:00` in the `America/Los_Angeles` timezone.\nIf no operator is specified, `eq` will be assumed. For example, `filter[created_at]=2020-01-01` is equivalent to `filter[created_at][gteq]=2020-01-01`. `eq` will convert a date to a 24 hour range.Thus `filter[created_at][eq]=2020-01-01` is equivalent to `filter[created_at][gteq]=2020-01-01T00:00:00-08:00&filter[created_at][lteq]=2020-01-02T00:00:00-08:00`.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response body\nshould be sorted, where each value is an attribute of the channel. When\nspecifying multiple values, each value in the sequence determines the\nordering precedence.\n\nEach channel in the collection will appear in ascending order, unless\nany of the enumerated values are prefixed with a minus \"-\" sign, in\nwhich case each channel will appear in descending order for the\nspecified values.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get Channels available to the authenticated user."
        }
      ]
    },
    {
      "info": {
        "name": "Content",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[UNSTABLE] Return all content available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/content/v3",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated content metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[content][meta]` or more granularly \n`?expose[content][meta]=effective_privacy`.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Return all content available to the authenticated user."
        },
        {
          "info": {
            "name": "[UNSTABLE] Get a content resource available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/content/v3/:content_id",
            "params": [
              {
                "name": "content_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the Content."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated content metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[content][meta]` or `?expose[meta][access]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get a content resource available to the authenticated user."
        },
        {
          "info": {
            "name": "[UNSTABLE] Update a content resource.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/content/v3/:content_id",
            "params": [
              {
                "name": "content_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the Content."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated content metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[content][meta]` or `?expose[meta][access]`.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Update a content resource."
        }
      ]
    },
    {
      "info": {
        "name": "Content Schedules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new Content Schedule.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/content_schedules/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Content Schedule."
        },
        {
          "info": {
            "name": "Update a Content Schedule.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/content_schedules/v3/:content_schedule_id",
            "params": [
              {
                "name": "content_schedule_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Content Schedule."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update a Content Schedule."
        },
        {
          "info": {
            "name": "Delete a Content Schedule.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/content_schedules/v3/:content_schedule_id",
            "params": [
              {
                "name": "content_schedule_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Content Schedule."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Deleting a Content Schedule effectively unschedules the related Content.\n"
        }
      ]
    },
    {
      "info": {
        "name": "Custom Fields",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get CustomFields available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/custom_fields",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get CustomFields available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new CustomField.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/custom_fields",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new CustomField."
        },
        {
          "info": {
            "name": "Get a CustomField.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/custom_fields/:custom_field_id",
            "params": [
              {
                "name": "custom_field_id",
                "value": "",
                "type": "path",
                "description": "The ID of the CustomField."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a CustomField."
        },
        {
          "info": {
            "name": "Update an existing CustomField.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/custom_fields/:custom_field_id",
            "params": [
              {
                "name": "custom_field_id",
                "value": "",
                "type": "path",
                "description": "The ID of the CustomField."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing CustomField."
        },
        {
          "info": {
            "name": "Delete a CustomField.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/custom_fields/:custom_field_id",
            "params": [
              {
                "name": "custom_field_id",
                "value": "",
                "type": "path",
                "description": "The ID of the CustomField."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a CustomField."
        }
      ]
    },
    {
      "info": {
        "name": "Custom Field Options",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get a collection of Custom Field Options.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/custom_field_options",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a collection of Custom Field Options."
        }
      ]
    },
    {
      "info": {
        "name": "Custom Field Types",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get all of the available custom field types.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/custom_field_types",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all of the available custom field types."
        }
      ]
    },
    {
      "info": {
        "name": "Custom Field Colors",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get the custom field colors available to the authenticated user",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/custom_field_colors",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the custom field colors available to the authenticated user"
        }
      ]
    },
    {
      "info": {
        "name": "Blocks",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get the blocks available to the authenticated user",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/blocks",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[block][meta]` or more granularly \n`?expose[block][meta][effective_privacy]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the blocks available to the authenticated user"
        },
        {
          "info": {
            "name": "Create a new Block",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/blocks",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Ask for Access metadata to be returned."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "As noted in the overview for the Blocks API, you can pair a block with a\nmoment on creation as long as the type specified for the block supports\npairing with moments.\n\nIf you create a moment-paired block and do not give it an `asset`, it will\nborrow the moment's asset.\n"
        },
        {
          "info": {
            "name": "Get a Block by the given ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[block][meta]` or `?expose[meta][access]`.\n"
              },
              {
                "name": "omit",
                "value": "",
                "type": "query",
                "description": "Optionally omit part of the calculated block metadata.\n\nThis is currently only available when requesting moment resources from the\n`/loupe/v3/blocks/{id}` `GET` endpoint.\nYou request that this metadata be included in responses with the `expose` query\nparameter like: `/loupe/v3/blocks/{id}?expose[meta][access]`. Then you\ncan omit resource access metadata for paired moments (if relevant) with\n`omit[meta][access]=paired_resources`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Block by the given ID"
        },
        {
          "info": {
            "name": "Update an existing Block.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Ask for Access metadata to be returned."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Block."
        },
        {
          "info": {
            "name": "Delete a Block by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "This operation will also delete the block's child view, if one is associated.\nYou must also have permission to delete the child view.\n"
        }
      ]
    },
    {
      "info": {
        "name": "Block Duplication",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Duplicate an existing block",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/blocks/:block_id/duplicate",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block being duplicated."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Duplicates a block and its associations. Specifying a `view` relationship will\nto link the duplicated block to a view via a `block_connector`. The absence of a `view` relationship\nwill create the block without any `block_connector`s. Supports optional attribute overrides.\n"
        },
        {
          "info": {
            "name": "Get a block duplication by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/block_duplications/:block_duplication_id",
            "params": [
              {
                "name": "block_duplication_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block Duplication."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a block duplication by ID"
        }
      ]
    },
    {
      "info": {
        "name": "Block Connectors",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new BlockConnector",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/block_connectors",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Creating a BlockConnector functionally places a Block within a View. If a Category relationship is specified as well, the Block will also be placed within that Category, and the row_index or y_scale attributes will apply to the presentation of the Block within that Category.\nNote that a Block may only be placed within a given View once; a BlockConnector cannot be created with a View if another BlockConnector exists that connects the Block to that same View already."
        },
        {
          "info": {
            "name": "Update a BlockConnector",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/block_connectors/:block_connector_id",
            "params": [
              {
                "name": "block_connector_id",
                "value": "",
                "type": "path",
                "description": "The ID of the BlockConnector."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "The appearance of a Block within a Category can be affected by updating the attributes of a BlockConnector resource. Additionally, a Category relationship can be specified or nullified to place the Block within a Category, or remove it respectively.\nThis route accepts an optional block side-patch via its `data.included` property. This allows you to set block attributes at the same time as updating the block connector. Modifying block relationships is not supported at this time. Including the blo"
        },
        {
          "info": {
            "name": "Delete a BlockConnector resource",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/block_connectors/:block_connector_id",
            "params": [
              {
                "name": "block_connector_id",
                "value": "",
                "type": "path",
                "description": "The ID of the BlockConnector."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Deleting a BlockConnector effectively severs the connection between a\nBlock and the View (and optionally the Category, if the BlockConnector has\na Category relationship).\n"
        }
      ]
    },
    {
      "info": {
        "name": "Block Custom Field Values",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new Block Custom Field Value.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/block_custom_field_values",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma-separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Block Custom Field Value."
        },
        {
          "info": {
            "name": "Get a Block Custom Field Value by the given ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/block_custom_field_values/:block_custom_field_value_id",
            "params": [
              {
                "name": "block_custom_field_value_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block Custom Field Value to retrieve."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma-separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Block Custom Field Value by the given ID"
        },
        {
          "info": {
            "name": "Update an existing Block Custom Field Value.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/block_custom_field_values/:block_custom_field_value_id",
            "params": [
              {
                "name": "block_custom_field_value_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block Custom Field Value to retrieve."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma-separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Block Custom Field Value."
        },
        {
          "info": {
            "name": "Delete a Block Custom Field Value by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/block_custom_field_values/:block_custom_field_value_id",
            "params": [
              {
                "name": "block_custom_field_value_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Block Custom Field Value to retrieve."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Block Custom Field Value by the given ID"
        }
      ]
    },
    {
      "info": {
        "name": "Categories",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new Category",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/categories",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Category"
        },
        {
          "info": {
            "name": "Get a Category by the given ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/categories/:category_id",
            "params": [
              {
                "name": "category_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Category."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Category by the given ID"
        },
        {
          "info": {
            "name": "Update an existing Category.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/categories/:category_id",
            "params": [
              {
                "name": "category_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Category."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Category."
        },
        {
          "info": {
            "name": "Delete a Category by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/categories/:category_id",
            "params": [
              {
                "name": "category_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Category."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Category by the given ID"
        }
      ]
    },
    {
      "info": {
        "name": "Charts",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new Chart under a Category",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/categories/:category_id/charts",
            "params": [
              {
                "name": "category_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Category to relate the Chart to."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Chart under a Category"
        },
        {
          "info": {
            "name": "Create a new Chart",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/charts",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Chart"
        },
        {
          "info": {
            "name": "Update an existing Chart.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/charts/:chart_id",
            "params": [
              {
                "name": "chart_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Chart."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Chart."
        },
        {
          "info": {
            "name": "Delete a Chart by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/charts/:chart_id",
            "params": [
              {
                "name": "chart_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Chart."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Chart by the given ID"
        }
      ]
    },
    {
      "info": {
        "name": "Category Types",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Category Types available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/category_types",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Category Types available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Category Type resource",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/category_types",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Category Type resource"
        },
        {
          "info": {
            "name": "Get the Category Type resource that has the given id",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/category_types/:category_type_id",
            "params": [
              {
                "name": "category_type_id",
                "value": "",
                "type": "path",
                "description": "The id of the Category Type resource"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the Category Type resource that has the given id"
        },
        {
          "info": {
            "name": "Update the Category Type resource that has the given id",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/category_types/:category_type_id",
            "params": [
              {
                "name": "category_type_id",
                "value": "",
                "type": "path",
                "description": "The id of the Category Type resource"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update the Category Type resource that has the given id"
        },
        {
          "info": {
            "name": "Delete the Category Type resource that has the given id",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/category_types/:category_type_id",
            "params": [
              {
                "name": "category_type_id",
                "value": "",
                "type": "path",
                "description": "The id of the Category Type resource"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete the Category Type resource that has the given id"
        }
      ]
    },
    {
      "info": {
        "name": "Filter Sets",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new filter set.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/filter_sets",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new filter set."
        },
        {
          "info": {
            "name": "Update an existing filter set.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/filter_sets/:filter_set_id",
            "params": [
              {
                "name": "filter_set_id",
                "value": "",
                "type": "path",
                "description": "The ID of the filter set."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing filter set."
        },
        {
          "info": {
            "name": "Delete a filter set.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/filter_sets/:filter_set_id",
            "params": [
              {
                "name": "filter_set_id",
                "value": "",
                "type": "path",
                "description": "The ID of the filter set."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a filter set."
        }
      ]
    },
    {
      "info": {
        "name": "Key Dates",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new Key Date",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/key_dates",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Key Date"
        },
        {
          "info": {
            "name": "Update an existing Key Date.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/key_dates/:key_date_id",
            "params": [
              {
                "name": "key_date_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Key Date."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Ask for Access metadata to be returned."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Key Date."
        },
        {
          "info": {
            "name": "Delete a Key Date by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/key_dates/:key_date_id",
            "params": [
              {
                "name": "key_date_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Key Date."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Key Date by the given ID"
        }
      ]
    },
    {
      "info": {
        "name": "Views",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get the views available to the authenticated user for the given Workspace ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/views",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[view][meta]` or more granularly \n`?expose[view][meta][effective_privacy]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the views available to the authenticated user for the given Workspace ID"
        },
        {
          "info": {
            "name": "Create a new View",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/views",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[view][meta]` or `?expose[meta][access]`.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "In the future, we will begin requiring all views (new or existing) to\nbelong to a parent block, as part of the plan-block re-architecture work.\n\nAs of now, if you don't provide a `parent_block` relationship, this\nendpoint will automatically create a parent block and associate it with\nthe new view resource. This parent block will inherit permission from the\nworkspace, so that access can still be controlled from the view as it\nhas been.\n"
        },
        {
          "info": {
            "name": "Get a View by the given ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/views/:view_id",
            "params": [
              {
                "name": "view_id",
                "value": "",
                "type": "path",
                "description": "The ID of the View."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[view][meta]` or `?expose[meta][access]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a View by the given ID"
        },
        {
          "info": {
            "name": "Update an existing View.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/views/:view_id",
            "params": [
              {
                "name": "view_id",
                "value": "",
                "type": "path",
                "description": "The ID of the View."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated view metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[view][meta]` or `?expose[meta][access]`.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing View."
        },
        {
          "info": {
            "name": "Delete a View by the given ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/views/:view_id",
            "params": [
              {
                "name": "view_id",
                "value": "",
                "type": "path",
                "description": "The ID of the View."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a View by the given ID"
        },
        {
          "info": {
            "name": "Delete block relationships from a View",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/views/:view_id/relationships/blocks",
            "params": [
              {
                "name": "view_id",
                "value": "",
                "type": "path",
                "description": "The ID of the View."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Deletes the relationship between the given View and one or more Blocks\nusing JSON:API to-many relationship semantics.\n\nThis removes the block from the plan without deleting the block itself.\n\nThis endpoint currently accepts a single block resource identifier in the\nrequest body.\n"
        }
      ]
    },
    {
      "info": {
        "name": "View Colors",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new View Color",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/view_colors",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new View Color"
        }
      ]
    },
    {
      "info": {
        "name": "View Columns",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List all columns for a plan table view.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/view_columns",
            "params": [
              {
                "name": "view_id",
                "value": "",
                "type": "query",
                "description": "The ID of the view whose columns to retrieve."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "List all columns for a plan table view."
        },
        {
          "info": {
            "name": "Enable a column on a plan table view (standard or custom field).",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/loupe/v3/view_columns",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Enable a column on a plan table view (standard or custom field)."
        },
        {
          "info": {
            "name": "Reorder a view column (update its position).",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/loupe/v3/view_columns/:view_column_id",
            "params": [
              {
                "name": "view_column_id",
                "value": "",
                "type": "path",
                "description": "The ID of the view column."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Reorder a view column (update its position)."
        },
        {
          "info": {
            "name": "Disable a column on a plan table view by deleting its view_column record.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/loupe/v3/view_columns/:view_column_id",
            "params": [
              {
                "name": "view_column_id",
                "value": "",
                "type": "path",
                "description": "The ID of the view column."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Disable a column on a plan table view by deleting its view_column record."
        }
      ]
    },
    {
      "info": {
        "name": "View Standard Columns",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List all standard columns available for plan table views.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/loupe/v3/view_standard_columns",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "List all standard columns available for plan table views."
        }
      ]
    },
    {
      "info": {
        "name": "Moments",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Return all moments available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/moments/v3",
            "params": [
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response body should be sorted, where each value is an attribute of the moment. When specifying multiple values, each value in the sequence determines the ordering precedence.\n\n\nEach moment in the collection will appear in ascending order, unless any of the enumerated values are prefixed with a minus \"-\" sign, in which case each moment will appear in descending order for the specified values.\n"
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "A JSON:API [sparse fieldset](https://jsonapi.org/format/#fetching-sparse-fieldsets) declaration. The resource type can be that of the primary resource (i.e. `moment`) or any of the included resources (e.g. `channel` or `workspace`).\n"
              },
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\nAll timestamp filters (`created_at`, `updated_at`, and `scheduled_at`), use syntax `filter[field_name][gt]=2020-01-01T00:00:00-07:00`\n\nTimestamps use iso8601 formatting, such as `YYYY-MM-DD` or `YYYY-MM-DDThh:mmTZD`.Timestamps of the form `YYYY-MM-DD` will be converted to `YYY-MM-DDT00:00:00` in the `America/Los_Angeles` timezone.\n\nIf no operator is specified, `eq` will be assumed. For example, `filter[created_at]=2020-01-01` is equivalent to `filter[created_at][gteq]=2020-01-01`. `eq` will convert a date to a 24 hour range.Thus `filter[created_at][eq]=2020-01-01` is equivalent to `filter[created_at][gteq]=2020-01-01T00:00:00-08:00&filter[created_at][lteq]=2020-01-02T00:00:00-08:00`.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated moment metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose`\nquery parameter like: `/moments/v3/moments?expose[moment][meta]` or more\ngranularly `?expose[moment][meta]=is_stamp_template`.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Return all moments available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new public or private moment.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/moments/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new public or private moment."
        },
        {
          "info": {
            "name": "Return the specified Moment",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/moments/v3/:moment_id",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the Moment."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "A JSON:API [sparse fieldset](https://jsonapi.org/format/#fetching-sparse-fieldsets) declaration. The resource type can be that of the primary resource (i.e. `moment`) or any of the included resources (e.g. `channel` or `workspace`).\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated moment metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `/moments/v3/moments?expose[moment][meta]` or `expose[meta][access]`.\n"
              },
              {
                "name": "omit",
                "value": "",
                "type": "query",
                "description": "Optionally omit part of the calculated moment metadata.\n\nThis is currently only available when requesting moment resources from the\n`/moments/v3/moments` and `/moments/v3/moments/{id}` `GET` endpoints.\nYou request that this metadata be included in responses with the `expose` query\nparameter like: `/moments/v3/moments?expose[meta][access]`. Then you\ncan omit resource access metadata for paired blocks (if relevant) with\n`omit[meta][access]=paired_resources`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Return the specified Moment"
        },
        {
          "info": {
            "name": "Update the specified Moment",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/moments/v3/:moment_id",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the Moment."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated moment metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `/moments/v3/moments?expose[moment][meta]` or `expose[meta][access]`.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update the specified Moment"
        },
        {
          "info": {
            "name": "Delete the specified Moment",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/moments/v3/:moment_id",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the Moment."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete the specified Moment"
        }
      ]
    },
    {
      "info": {
        "name": "Moment Custom Fields",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Moment Custom Fields available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/moments/v3/:moment_id/moment_custom_fields",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Moment Custom Fields available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Moment Custom Field.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/moments/v3/:moment_id/moment_custom_fields",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Moment Custom Field."
        },
        {
          "info": {
            "name": "Update an existing Moment Custom Field.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/moments/v3/:moment_id/moment_custom_fields/:moment_custom_field_id",
            "params": [
              {
                "name": "moment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment."
              },
              {
                "name": "moment_custom_field_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment Custom Field."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Moment Custom Field."
        }
      ]
    },
    {
      "info": {
        "name": "Moment Duplication",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Duplicate an existing moment.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/moments/v3/:source_moment_id/moment_duplications",
            "params": [
              {
                "name": "source_moment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment being duplicated."
              },
              {
                "name": "sync",
                "value": "",
                "type": "query",
                "description": "By default, an operation will be created with the `pending` status. It will\nreturn early and complete asynchronously. When this parameter is `true`,\nall operations will be processed synchronously and completely within one\nrequest, and the server will not respond until all operations have\ncompleted.\n\nThis option should be used with care as longer-running requests have the\npotential to time out.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Duplicate an existing moment."
        },
        {
          "info": {
            "name": "Get the status of a moment duplication.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/moments/v3/:source_moment_id/moment_duplications/:id",
            "params": [
              {
                "name": "source_moment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment being duplicated."
              },
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment duplication."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the status of a moment duplication."
        }
      ]
    },
    {
      "info": {
        "name": "Moment Assignees",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Moment Assignees available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/moment_assignees/v3",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Moment Assignees available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new moment assignee.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/moment_assignees/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new moment assignee."
        },
        {
          "info": {
            "name": "Delete a moment assignee by ID.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/moment_assignees/v3/:moment_assignee_id",
            "params": [
              {
                "name": "moment_assignee_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment Assignee."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a moment assignee by ID."
        }
      ]
    },
    {
      "info": {
        "name": "Moment Schedules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a new moment schedule.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/moment_schedules/v3",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new moment schedule."
        },
        {
          "info": {
            "name": "Update a Moment Schedule.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/moment_schedules/v3/:moment_schedule_id",
            "params": [
              {
                "name": "moment_schedule_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment Schedule."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update a Moment Schedule."
        },
        {
          "info": {
            "name": "Delete a moment schedule by ID.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/moment_schedules/v3/:moment_schedule_id",
            "params": [
              {
                "name": "moment_schedule_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Moment Schedule."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a moment schedule by ID."
        }
      ]
    },
    {
      "info": {
        "name": "Stories",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get a story by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/stories/v3/:story_id",
            "params": [
              {
                "name": "story_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the story."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally include access metadata in the response.\nRequest with the `expose` query parameter like: `expose[meta][access]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Retrieves a single story by its UUID.\n"
        },
        {
          "info": {
            "name": "Update the specified Story",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/stories/v3/:story_id",
            "params": [
              {
                "name": "story_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the story."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally include access metadata in the response.\nRequest with the `expose` query parameter like: `expose[meta][access]`.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update the specified Story"
        },
        {
          "info": {
            "name": "Migrate moments from a story to plans and/or boards",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/stories/v3/:story_id/migrate_moments",
            "params": [
              {
                "name": "story_id",
                "value": "",
                "type": "path",
                "description": "The UUID of the story."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Migrates moments from the specified story to one or more destinations (plans and/or boards).\nThis operation is performed asynchronously in the background. The user will receive an\nin-app notification when the migration is complete.\n\nAt least one destination (plan_id or board_id) must be specified.\n"
        }
      ]
    },
    {
      "info": {
        "name": "Onboarding",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Request a trial invite",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/onboarding/v3/trial_invites",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/oauth/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a trial invitation record that can be accepted by following the one-time URL populated into the response's `accept` `link` property.\n\nNote that although the OAuth Client Credentials Flow for authorization is not stateless, you _can_ use this API endpoint as a webhook by requesting an access token once (which will not expire for the `write:onboarding` scope) and configuring an Authorization Bearer header (per the OAuth standard) using this token within a third party platform."
        },
        {
          "info": {
            "name": "Get a trial invite",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/onboarding/v3/trial_invites/status",
            "params": [
              {
                "name": "approximate_created_at",
                "value": "",
                "type": "query",
                "description": "An ISO8601 datetime that is within 10 minutes of when the trial invitation was created."
              },
              {
                "name": "company",
                "value": "",
                "type": "query",
                "description": "The name for the Company the trial is being requested on behalf of."
              },
              {
                "name": "user_email",
                "value": "",
                "type": "query",
                "description": "The email of the user requesting a trial."
              },
              {
                "name": "user_first_name",
                "value": "",
                "type": "query",
                "description": "The first name of the user requesting a trial."
              },
              {
                "name": "user_last_name",
                "value": "",
                "type": "query",
                "description": "The last name of the user requesting a trial."
              }
            ]
          },
          "docs": "Retrieve a trial invite. This route is designed to be used by a page that waits for a requested trial to be created and then allows the requesting user to proceed. It therefore is not authenticated but it does require _very_ specific knowledge of the trial in order to retrieve its record.\n\nMost of the parameter values must exactly match those used to create the trial invitation.\n\nOf particular note in the response payload is the `user_setup` link. This link will only be populated if the trial ha"
        },
        {
          "info": {
            "name": "Start a new Trial for a customer (accept a trial invite)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/onboarding/v3/trial_invites/do/accept/:single_use_hash",
            "params": [
              {
                "name": "single_use_hash",
                "value": "",
                "type": "path",
                "description": "A single-use hash that identifies and authorizes the creation of a trial Opal."
              }
            ]
          },
          "docs": "Create a new Opal, Workspace, initial User, and other seeded resources.\n\nThis endpoint can be made with the `Accept: text/html` header to automatically redirect to the onboarding user interface for the first user in the new trial Opal.\n\nAlternatively, this endpoint can be used with the `Accept: application/json` header to request an RPC response payload."
        }
      ]
    },
    {
      "info": {
        "name": "Planning Status",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get all configured planning statuses for a workspace.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/planning_statuses/v3",
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all configured planning statuses for a workspace."
        }
      ]
    },
    {
      "info": {
        "name": "Rich Text Documents",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Rich Text Documents available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/rich_texts/v3/documents",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get Rich Text Documents available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new Rich Text Document.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/rich_texts/v3/documents",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new Rich Text Document."
        },
        {
          "info": {
            "name": "Get a Rich Text Document.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/rich_texts/v3/documents/:rich_text_document_id",
            "params": [
              {
                "name": "rich_text_document_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Rich Text Document."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Returns a rich text document with its metadata and embedded resources.\n"
        },
        {
          "info": {
            "name": "Update an existing Rich Text Document.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/rich_texts/v3/documents/:rich_text_document_id",
            "headers": [
              {
                "name": "if-unmodified-since",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "rich_text_document_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Rich Text Document."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing Rich Text Document."
        },
        {
          "info": {
            "name": "Delete a Rich Text Document.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/rich_texts/v3/documents/:rich_text_document_id",
            "params": [
              {
                "name": "rich_text_document_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Rich Text Document."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a Rich Text Document."
        },
        {
          "info": {
            "name": "Duplicate a Rich Text Document",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/rich_texts/v3/documents/:rich_text_document_id/duplicate",
            "params": [
              {
                "name": "rich_text_document_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Rich Text Document."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Duplicate a Rich Text Document"
        },
        {
          "info": {
            "name": "Get a JWT for use with the TipTap Collaboration server.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/rich_texts/v3/get_collaboration_token",
            "params": [
              {
                "name": "document_id",
                "value": "",
                "type": "query",
                "description": "The ID of one or more Rich Text Documents for which to request access.\n"
              },
              {
                "name": "permission",
                "value": "",
                "type": "query",
                "description": "The permission level for the token. Defaults to 'write' if not specified.\n- write: Full edit access (requires identification via Session Token or OAuth)\n- readonly: Read-only access\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Returns a JWT token for accessing rich text documents via the TipTap Collaboration server with support for identified requests (Session Token or OAuth) and anonymous requests (presentation share cookies for readonly access).\n"
        }
      ]
    },
    {
      "info": {
        "name": "Users",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[UNSTABLE] Get users available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/users/v3/users",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response body should be sorted, where each value is an attribute of the user. When specifying multiple values, each value in the sequence determines the ordering precedence.\nEach user in the collection will appear in ascending order, unless any of the enumerated values are prefixed with a minus \"-\" sign, in which case each user will appear in descending order for the specified values.\nIf no sort parameter is provided, users will be default sorted by created_at, ascending.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get users available to the authenticated user."
        },
        {
          "info": {
            "name": "[UNSTABLE] Get a specific user's information.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/users/v3/users/:user_id",
            "params": [
              {
                "name": "user_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get a specific user's information."
        }
      ]
    },
    {
      "info": {
        "name": "User Groups",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get User Groups available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated user groups metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[user_group][meta]` or more granularly\n`?expose[user_group][meta][effective_member_users]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get User Groups available to the authenticated user."
        },
        {
          "info": {
            "name": "Create a new User Group.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a new User Group."
        },
        {
          "info": {
            "name": "Get a User Group",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/:user_group_id",
            "params": [
              {
                "name": "user_group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the User Group."
              },
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Optionally calculated user groups metadata which are not part of responses by default.\n\nYou request that metadata be included in responses with the `expose` query\nparameter like: `?expose[user_group][meta]` or more granularly\n`?expose[user_group][meta][effective_member_users]`.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a User Group"
        },
        {
          "info": {
            "name": "Update an existing User Group.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/:user_group_id",
            "params": [
              {
                "name": "user_group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the User Group."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing User Group."
        },
        {
          "info": {
            "name": "Delete a User Group",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/:user_group_id",
            "params": [
              {
                "name": "user_group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the User Group."
              },
              {
                "name": "destroy",
                "value": "",
                "type": "query",
                "description": "When `true`, hard-deletes the row instead of soft-deleting. Internal\nrollback use only.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Default behavior is **soft-delete**: sets `deleted_at` and tears down\nSpiceDB `member` and `inherited_group` relations so downstream resources\nstop inheriting access through it. The Postgres row, group members, and\nthe `opal` SpiceDB relation are preserved for potential restoration.\n\nPass `destroy=true` (internal-only, privileged clients only) to\nhard-delete the row entirely. Used by transactional-rollback paths\nwhere the resource that owned the group failed to create and a\nsoft-deleted orphan w"
        },
        {
          "info": {
            "name": "Delete all User Group Members for User",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/all/relationships/members",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[Internal Only]\n\nDeletes the given user from all groups.\n"
        },
        {
          "info": {
            "name": "Filter a list of groups to those intersecting given lists of users and groups",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/do/get_intersections",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Filters `candidate_group_ids` to those which - contain (at any nesting level) at least one of the source users - are, or have as a child, one of the source groups"
        },
        {
          "info": {
            "name": "Filter a list of groups to those intersecting a source group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/user_groups/v3/user_groups/:user_group_id/do/get_intersections",
            "params": [
              {
                "name": "user_group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the User Group."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Convenience layer over `UserGroupIntersectionsByMemberV3` that uses a group as its starting point."
        }
      ]
    },
    {
      "info": {
        "name": "Gem Chats",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[PROPOSED] Get gem_chat resources available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/gem_chats",
            "params": [
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Get gem_chat resources available to the authenticated user."
        },
        {
          "info": {
            "name": "[PROPOSED] Create a gem_chat resource.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/gem_chats",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Create a gem_chat resource."
        },
        {
          "info": {
            "name": "[PROPOSED] Delete a GemChat.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/v3/gem_chats/:gem_chat_id",
            "params": [
              {
                "name": "gem_chat_id",
                "value": "",
                "type": "path",
                "description": "The ID of the GemChat."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Delete a GemChat."
        }
      ]
    },
    {
      "info": {
        "name": "Gem Files",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[PROPOSED] Create a new gem_file.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/gem_files",
            "headers": [
              {
                "name": "X-File-Name",
                "value": ""
              },
              {
                "name": "X-File-Size",
                "value": ""
              },
              {
                "name": "X-Mime-Type",
                "value": ""
              },
              {
                "name": "X-Workspace-Id",
                "value": ""
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[PROPOSED] Create a new gem_file."
        },
        {
          "info": {
            "name": "[PROPOSED] Download a generated gem_file.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/gem_files/:id/download",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "The ID of the gem_file."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Streams the file's bytes as an attachment. Only files generated during a conversation are downloadable."
        }
      ]
    },
    {
      "info": {
        "name": "Presentation Themes",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[PROPOSED] Get the presentation themes of one or more workspaces.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/presentation_themes",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filters for limiting the results."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Presentation themes carry a workspace brand's presentation styling."
        }
      ]
    },
    {
      "info": {
        "name": "Workflow Assignments",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get a Workflow Assignment",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflow_assignments/:workflow_assignment_id",
            "params": [
              {
                "name": "workflow_assignment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow assignment"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related resource objects on the workflow assignment to include.\nNote that user resources are not available as includes on this endpoint; the client must make subsequent API requests `api/v1/users` to request additional information on related users.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Workflow Assignment"
        },
        {
          "info": {
            "name": "Update an workflow assignment by ID",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/v3/workflow_assignments/:workflow_assignment_id",
            "params": [
              {
                "name": "workflow_assignment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow assignment"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an workflow assignment by ID"
        },
        {
          "info": {
            "name": "Delete an Workflow Assignment",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/v3/workflow_assignments/:workflow_assignment_id",
            "params": [
              {
                "name": "workflow_assignment_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow assignment"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete an Workflow Assignment"
        },
        {
          "info": {
            "name": "Get a collection of workflow_assignments",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflow_assignments",
            "params": [
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filter the resulting workflow assignments."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related resource objects on the workflow assignment to include.\nNote that user resources are not available as includes on this endpoint; the client must make subsequent API requests `api/v1/users` to request additional information on related users.\n"
              },
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response\nbody should be sorted, where each value is an attribute of the\nworkflow assignment. If no sort order is provided, resources will be default\nsorted by created_at, ascending.\n\nWhen specifying multiple values, each value in the sequence determines\nthe ordering precedence. Lastly, each workflow assignment in the collection will\nappear in ascending order, unless any of the enumerated values are\nprefixed with a minus \"-\" sign, in which case each workflow assignment will\nappear in descending order for the specified values.\n\nWorkflow Assignment due date is based on the stage containing the workflow assignment.\nSee Stage resource metadata.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get workflow_assignments to which the authenticated user has access.\nThese are not necessarily workflow_assignments assigned to the requesting user; if you wish to get workflow_assignments that are assigned to the user making the API request, pass the `assigned_user_id` filter set to the current user's ID.\n"
        },
        {
          "info": {
            "name": "Create an workflow_assignment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflow_assignments",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create an workflow_assignment"
        }
      ]
    },
    {
      "info": {
        "name": "Workflow Contexts",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a Context",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflow_contexts",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Creating a context ties a Workflow to a particular resource that the\nworkflow should operate on. Currently, only `moment` or `block` resources\nare supported.\n\nIf the context would refer to a moment-block pairing, both `moment` and\n`block` relationships should be provided when creating a context.\n"
        }
      ]
    },
    {
      "info": {
        "name": "Workflow Responses",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a Workflow Response for a Workflow Assignment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflow_responses",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related resource objects on the response to include.\n"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a Workflow Response for a Workflow Assignment"
        },
        {
          "info": {
            "name": "Fetch a Response by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflow_responses/:workflow_response_id",
            "params": [
              {
                "name": "workflow_response_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow_response"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related resource objects on the response to include.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Fetch a Response by ID"
        }
      ]
    },
    {
      "info": {
        "name": "Workflow Stages",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create a workflow_workflow_stage",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflow_stages",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create a workflow_workflow_stage"
        },
        {
          "info": {
            "name": "Get a workflow_stage by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflow_stages/:workflow_stage_id",
            "params": [
              {
                "name": "workflow_stage_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow_stage"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a workflow_stage by ID"
        },
        {
          "info": {
            "name": "Update a Stage by ID",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/v3/workflow_stages/:workflow_stage_id",
            "params": [
              {
                "name": "workflow_stage_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow_stage"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update a Stage by ID"
        },
        {
          "info": {
            "name": "Delete a workflow_stage",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://login.ouropal.com/v3/workflow_stages/:workflow_stage_id",
            "params": [
              {
                "name": "workflow_stage_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow_stage"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete a workflow_stage"
        }
      ]
    },
    {
      "info": {
        "name": "Workflows",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get a collection of workflows",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflows",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "filter",
                "value": "",
                "type": "query",
                "description": "Filter the resulting workflows."
              },
              {
                "name": "sort",
                "value": "",
                "type": "query",
                "description": "A comma separated value specifying how a collection in the response\nbody should be sorted, where each value is an attribute of the\nworkflow. If no sort order is provided, resources will be default\nsorted by created_at, ascending.\n\nWhen specifying multiple values, each value in the sequence determines\nthe ordering precedence. Lastly, each workflow in the collection will\nappear in ascending order, unless any of the enumerated values are\nprefixed with a minus \"-\" sign, in which case each workflow will appear\nin descending order for the specified values.\n"
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request.\n"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a collection of workflows"
        },
        {
          "info": {
            "name": "Create a workflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflows",
            "params": [
              {
                "name": "template",
                "value": "",
                "type": "query",
                "description": "Optionally create a workflow with a template.\n\nUsing templates creates a few workflow resources with one request.\nYou cannot use multiple templates at once.\n\nThe \"approval\" template creates a circuit breaker followed by\nan approval stage. Both contain one unassigned workflow_assignment.\n\nThe \"task\" template creates a circuit breaker followed by\na task stage. Both contain one unassigned workflow_assignment.\n"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "This endpoint creates a workflow without a workflow_context.\n\nBefore being used by an end-user of the Opal Platform, the workflow will\nneed to be associated with a resource via a `workflow_context` using the\n`v3/workflow_contexts` endpoint.\n\nIf you use the `template` parameter to create a workflow that is\npre-populated with workflow_stages & workflow_assignments, you may also\nwant to use the `include` parameter to include `stages` or\n`stages.assignments` in the response.\n"
        },
        {
          "info": {
            "name": "Get a Workflow by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/v3/workflows/:workflow_id",
            "params": [
              {
                "name": "workflow_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request.\n"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get a Workflow by ID"
        },
        {
          "info": {
            "name": "Duplicate a Workflow",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://login.ouropal.com/v3/workflows/:workflow_id/duplicate",
            "params": [
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated value of related objects to include."
              },
              {
                "name": "workflow_id",
                "value": "",
                "type": "path",
                "description": "The ID of the workflow"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Duplicates a Workflow with its associated Stages and Assignments.\n\nNote that all due dates will be omitted on duplicate.\n"
        }
      ]
    },
    {
      "info": {
        "name": "Workspaces",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "[UNSTABLE] Get Workspaces available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/workspaces/v3",
            "params": [
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "An object keyed by resource type, i.e. \\\"workspace\\\" or a workspace relationship, where each value is a CSV of attributes to include in the response."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated list of related objects to include"
              },
              {
                "name": "page",
                "value": "",
                "type": "query",
                "description": "Specify an offset and limit for pagination"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get Workspaces available to the authenticated user."
        },
        {
          "info": {
            "name": "[UNSTABLE] Get a Workspace available to the authenticated user.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/workspaces/v3/:workspace_id",
            "params": [
              {
                "name": "expose",
                "value": "",
                "type": "query",
                "description": "Expose response data that is only provided by request."
              },
              {
                "name": "fields",
                "value": "",
                "type": "query",
                "description": "An object keyed by resource type, i.e. \\\"workspace\\\" or a workspace relationship, where each value is a CSV of attributes to include in the response."
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "A comma separated list of related objects to include"
              },
              {
                "name": "workspace_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Workspace."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get a Workspace available to the authenticated user."
        },
        {
          "info": {
            "name": "[UNSTABLE] Get a workspace_defaults resource for a workspace.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://login.ouropal.com/workspaces/v3/workspace_defaults/:workspace_defaults_id",
            "params": [
              {
                "name": "workspace_defaults_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Workspace Defaults."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Get a workspace_defaults resource for a workspace."
        },
        {
          "info": {
            "name": "[UNSTABLE] Update an existing workspace defaults resource.",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://login.ouropal.com/workspaces/v3/workspace_defaults/:workspace_defaults_id",
            "params": [
              {
                "name": "workspace_defaults_id",
                "value": "",
                "type": "path",
                "description": "The ID of the Workspace Defaults."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "authorization_code",
              "authorizationUrl": "/oauth2/auth",
              "accessTokenUrl": "/oauth2/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "[UNSTABLE] Update an existing workspace defaults resource."
        }
      ]
    }
  ],
  "bundled": true
}