openapi: 3.2.0 info: title: Opal Moments API license: name: Opal API License url: https://www.workwithopal.com/api-license version: '1.0' description: 'Operations tagged Moments across 3 of this provider''s published API definitions: opal-asgard-bff-openapi.yml, opal-v2-openapi.yml, opal-v3-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://login.ouropal.com tags: - name: Moments paths: /asgard-bff/moments/add_to_boards: post: tags: - Moments operationId: MomentsAddToBoardsBFFV1 summary: Add multiple moments to multiple boards description: 'Adds multiple moments to multiple boards by creating board_objects. Also supports removing moments from boards, and associating moments with the default story of a board. Internally, this wraps a bulk operation request. A successful 200 response indicates that the overall bulk_operation has completed, while partial success/failure for sub-operations may have occurred. A 202 response indicates that the bulk operation has been successfully started, and is being processed asynchronously. ' security: - oauth2: - offline_access - api_key: - Session-Token requestBody: required: true content: application/json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - add_to_boards attributes: type: object required: - moments properties: moments: type: array items: type: object required: - id - board_ids - delete_board_object_ids properties: id: type: string format: uuid board_ids: type: array items: type: string format: uuid delete_board_object_ids: type: array items: type: string format: uuid story_id: type: string format: uuid example: data: type: add_to_boards attributes: moments: - id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d board_ids: - 2b457b63-f44b-457b-80cf-45d7af5ceedc delete_board_object_ids: - bccc3d21-7bee-4936-bbe0-d53ab19f117a - id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 board_ids: - 2b457b63-f44b-457b-80cf-45d7af5ceedc delete_board_object_ids: - 0ae58dec-429f-4e4d-828f-9d8e98722611 responses: '200': description: The bulk operation has completed successfully. content: application/json: schema: type: object required: - data properties: data: type: object required: - successes - failures additionalProperties: false properties: successes: type: array description: Operations that succeeded. items: oneOf: - type: object required: - moment_id - related_resource_id - type additionalProperties: false properties: moment_id: type: string format: uuid description: The ID of the moment. related_resource_id: type: string description: The ID of the resource that was associated with the moment. type: type: string enum: - board - board_object - story failures: type: array description: Operations that did not succeed. items: oneOf: - type: object required: - moment_id - related_resource_id - type - status_code - error additionalProperties: false properties: moment_id: type: string format: uuid description: The ID of the moment. related_resource_id: type: string description: The ID of the resource that was associated with the moment. type: type: string enum: - board - board_object - story error: type: string description: A human-readable error messaging explaining why the operation failed. status_code: type: integer description: The status code received when processing the underlying request. example: data: successes: - moment_id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d related_resource_id: 2b457b63-f44b-457b-80cf-45d7af5ceedc type: board - moment_id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d related_resource_id: 2b457b63-f44b-457b-80cf-45d7af5ceedc type: board_object - moment_id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 related_resource_id: 0ae58dec-429f-4e4d-828f-9d8e98722611 type: board_object failures: - moment_id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 related_resource_id: 2b457b63-f44b-457b-80cf-45d7af5ceedc type: board status_code: 422 error: Cannot create duplicate board_object. '202': description: The bulk operation is processing. '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '500': description: Internal Server Error content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status servers: - url: https://login.ouropal.com /asgard-bff/moments/add_to_plan: post: tags: - Moments operationId: MomentsAddToPlanBFFV1 summary: Add multiple moments to a plan description: 'Adds multiple moments to a plan by creating a paired_moment block in the plan. Also supports associating the new blocks with a category, if provided. Internally, this wraps a bulk operation request. A successful 200 response indicates that the overall bulk_operation has completed, while partial success/failure for sub-operations may have occurred. A 202 response indicates that the bulk operation has been successfully started, and is being processed asynchronously. ' security: - oauth2: - offline_access - api_key: - Session-Token requestBody: required: true content: application/json: schema: type: object required: - data properties: data: type: object required: - type - attributes - relationships properties: type: type: string enum: - add_to_plan attributes: type: object required: - moments properties: moments: type: array items: type: object required: - id - start_at - end_at - title properties: id: type: string format: uuid start_at: type: - string - 'null' format: date end_at: type: - string - 'null' format: date title: type: string relationships: type: object required: - plan - workspace properties: plan: type: object required: - data properties: data: required: - id - type properties: id: type: string format: uuid type: type: string enum: - plan workspace: type: object required: - data properties: data: required: - id - type properties: id: type: string format: uuid type: type: string enum: - workspace category: type: object required: - data properties: data: required: - id - type properties: id: type: string format: uuid type: type: string enum: - category category_type: type: object required: - data properties: data: required: - id - type properties: id: type: string format: uuid type: type: string enum: - category_type example: type: add_to_plan attributes: moments: - id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d start_at: null end_at: null title: Paired Moment A - id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 start_at: null end_at: null title: Paired Moment B relationships: workspace: id: 798ac6d9-b3fc-4155-88ee-237f43f3404b type: workspace plan: id: 7ccc7721-8473-46c4-8abe-e2061933a23f type: plan category: id: 2bc75fd1-7f3a-4458-8f66-87dd7f2cd446 type: category responses: '200': description: The bulk operation has completed successfully. content: application/json: schema: type: object required: - data properties: data: type: object required: - successes - failures additionalProperties: false properties: successes: type: array description: Operations that succeeded. items: oneOf: - type: object required: - moment_id - related_resource_id - type additionalProperties: false properties: moment_id: type: string format: uuid description: The ID of the moment. related_resource_id: type: string description: The ID of the resource that was associated with the moment. type: type: string enum: - plan - category failures: type: array description: Operations that did not succeed. items: oneOf: - type: object required: - moment_id - related_resource_id - type - status_code - error additionalProperties: false properties: moment_id: type: string format: uuid description: The ID of the moment. related_resource_id: type: string description: The ID of the resource that was associated with the moment. type: type: string enum: - plan - category error: type: string description: A human-readable error messaging explaining why the operation failed. status_code: type: integer description: The status code received when processing the underlying request. example: data: successes: - moment_id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d related_resource_id: 7ccc7721-8473-46c4-8abe-e2061933a23f type: plan - moment_id: 9b2e0fd6-76c0-4c21-af5b-7a58b118665d related_resource_id: 2bc75fd1-7f3a-4458-8f66-87dd7f2cd446 type: category - moment_id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 related_resource_id: 7ccc7721-8473-46c4-8abe-e2061933a23f type: plan - moment_id: 48e50fa7-1a23-4a9b-aadb-7a4fe4110a20 related_resource_id: 2bc75fd1-7f3a-4458-8f66-87dd7f2cd446 type: category failures: [] '202': description: The bulk operation is processing. '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '500': description: Internal Server Error content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status servers: - url: https://login.ouropal.com /moments/v2: get: tags: - Moments operationId: ReadMomentsV2 summary: Return all moments available to the authenticated user. security: - oauth2: - offline_access - api_key: - Session-Token parameters: - name: sort in: 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. Each 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. ' required: false schema: type: string enum: - created_at - day_segment - scheduled_at - updated_at - name: fields in: query description: An object keyed by resource type, i.e. \"moment\" or a moment relationship, where each value is a CSV of attributes to include in the response. required: false schema: type: object properties: brand: type: string label: type: string moment: type: string privacy_group: type: string story: type: string style: deepObject explode: true - name: filter in: query description: 'Filters for limiting the results. All timestamp filters (`created_at`, `updated_at`, and `scheduled_at`), use syntax `filter[field_name][gt]=2020-01-01T00:00:00-07:00` Timestamps 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. If 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`. ' required: false schema: type: object properties: account_id: type: array description: Retrieve moments by the associated account IDs. items: type: integer brand_id: type: array description: 'The IDs of the workspaces to which results should be filtered. "Workspace ID" and "Brand ID" are synonymous. Comma separated list of IDs. If included, will only fetch resources associated with these brands. If not included, will return resources associated with all brands that the user belongs to. For example, `filter[brand_id]=1` will fetch all resources associated with brand 1, while `filter[brand_id]=1,2,3` will fetch any resources associated with brands 1, 2, or 3. ' items: type: integer created_at: description: 'Filter by the moment created_at time. Uses syntax `filter[created_at][gt]=2020-01-01T00:00:00-07:00`. ' type: string format: date-time id: type: array description: Retrieve moments by ID. items: type: integer end_date: type: string format: date deprecated: true description: Deprecated in favor of `filter[scheduled_at][lt]` include_duration_overlap: type: boolean description: 'When `true`, combined with `filter[start_date]`/`filter[end_date]`, returns moments whose scheduled duration overlaps the requested interval even if their `scheduled_at` falls outside it. Default is `false`, which matches only on `scheduled_at`. ' label_id: type: array description: 'Comma separated list of label IDs. If included, will only fetch moments associated with these labels. For example, `filter[label_id]=1` will fetch all moments associated with label 1, while `filter[label_id]=1,2,3` will fetch any moment associated with labels 1, 2, or 3. ' items: type: integer scheduled_at: allOf: - type: object properties: eq: type: string description: 'Equal to filter. If no other filter is specified, `eq` will be assumed. ' gt: type: string description: Greater than filter gteq: type: string description: Greater than or equal to filter lt: type: string description: Less than filter lteq: type: string description: Less than or equal to filter - format: date description: 'Filter by the moment scheduled_at date. Uses syntax `filter[scheduled_at][gt]=2020-01-01`. ' search: description: Retrieve moments matching search criteria. type: string service_id: type: array description: Retrieve moments by the associated service IDs. items: type: integer start_date: type: string format: date deprecated: true description: Deprecated in favor of `filter[scheduled_at][lt]` story_id: description: Retrieve moments by the associated story ID. type: integer updated_at: description: 'Filter by the moment updated_at time. Uses syntax `filter[updated_at][gt]=2020-01-01T00:00:00-07:00`. ' type: string format: date-time style: deepObject explode: true - name: include in: query required: false description: A comma separated value of related objects to include. schema: type: array items: type: string enum: - asset_references - brand - labels - note - primary_asset_reference - primary_story - privacy_group - services - stories style: form explode: false - name: expose in: query required: false description: Expose response data that is only provided by request. schema: type: object properties: unscheduled_moments: type: boolean deprecated: true description: '**[INTERNAL-ONLY] [Unstable]** đŸ´â€â˜ ī¸đŸ‘ģđŸšˇđŸ’Ŗ This parameter can be used to expose Unscheduled Moments to the V2 Moment GET APIs. Opal developers are using this parameter as a migration tool. If you need Moments that are Unscheduled, please see the V3 Moment APIs that offer native support. This parameter should be considered [Unstable] and may be removed at any time without notice of deprecation. Using this parameter will also cause the Moments V2 GET response to deviate from the documented schema. ' - name: page description: Specify an offset and limit for pagination in: query required: false schema: type: object properties: limit: type: integer default: 50 offset: type: integer style: deepObject explode: true responses: '200': description: An array of moments. content: application/json: schema: type: object required: - data properties: data: type: array items: title: moment type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - moment attributes: type: object required: - uuid - color - content_count - created_at - day_segment - is_ghost - scheduled_at - title - updated_at additionalProperties: false properties: uuid: type: string format: uuid description: A unique identifier for the moment. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night - null is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true scheduled_at: type: string format: date-time description: An ISO8601 date-time. scheduled_end_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. set_default_post_takedown: type: boolean description: Indicates whether the duration of newly created content should match the duration of this moment readOnly: false title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true is_visible: type: boolean description: Whether or not the given moment has been soft-deleted. readOnly: true relationships: type: object additionalProperties: false properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - note owner: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - user paired_block: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - block posts: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group services: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - service stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story workflow: type: object required: - data - links additionalProperties: false properties: data: type: - object - 'null' required: - type - id additionalProperties: false properties: type: type: string enum: - workflow id: type: string pattern: ^[0-9]+$ links: type: object additionalProperties: false properties: related: type: string included: type: array items: oneOf: - title: asset_reference type: object required: - id - attributes - type - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - asset_reference attributes: type: object required: - asset_type - asset_uuid - content_type - format - filename - escaped_filename - filesize - full_url - meta_data - original_url - preview_url - public_id - width - height - uuid additionalProperties: false properties: asset_type: type: - string - 'null' description: 'This field is semi-open ended but should be set to `image`, `audio`, or `video` for those respective types of media and `file` for most other types of media. ' asset_source: type: - string - 'null' description: 'Asset Sources are pre-existing records indicating the origin of an asset reference. You can''t set this field to arbitrary values. If you know of an Asset Source and you''d like to indicate a new asset reference originated with that source, this field should contain that source''s name. ' asset_uuid: type: - string - 'null' description: 'The `id` of an `asset` resource this asset reference will surface within the Asset Library. ' content_type: type: - string - 'null' description: 'This field was used by some legacy systems. It is exposed for historical reasons. If set, setting it to the same value as `asset_type` is generally a good idea. It is not a MIME type. ' description: type: - string - 'null' format: type: - string - 'null' description: 'Used differently by some legacy systems but any new asset reference should use the `format` field to store its filetype extension (ex. `png`, `mp4`, `gif`, `mov`, etc.). ' filename: type: - string - 'null' escaped_filename: type: string readOnly: true filesize: type: - integer - 'null' description: Size of file in bytes. full_url: type: - string - 'null' description: 'When associating an asset with an asset reference, this field should be set to the `url` property of the asset. ' meta_data: type: - object - 'null' description: Can contain arbitrary key-value pairs related to the asset. properties: duration: type: string description: Parsed from video assets. page_count: type: string description: Parsed from PDF assets. processed_height: type: string description: Parsed from video assets. processed_width: type: string description: Parsed from video assets. additionalProperties: type: string original_url: type: - string - 'null' preview_url: type: - string - 'null' readOnly: true public_id: type: - string - 'null' width: type: - integer - 'null' description: 'When associating an asset with an asset reference, this field should be set to the `width` of the asset. ' height: type: - integer - 'null' description: 'When associating an asset with an asset reference, this field should be set to the `height` of the asset. ' uuid: type: string readOnly: true description: 'Use this ID when referring to the same asset reference from one of Opal''s v3 APIs. ' relationships: type: object additionalProperties: false properties: brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story cover_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label asset_reference_options: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference_option options: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - option - title: brand type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - brand meta: type: - object - 'null' description: Metadata around the Brand object properties: user_is_member: type: boolean description: Boolean that represents whether the requesting user is a member of the brand. attributes: type: object required: - slug - name - uuid - start_of_week - timezone additionalProperties: false properties: uuid: type: string format: uuid description: A unique identifier for the workspace. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the user was last updated. readOnly: true slug: type: string description: The slug for the Brand/Workspace. This is a url-safe name for the Workspace. name: type: string description: The name of the Workspace. start_of_week: type: number enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: 'The default start weekday index for the week view Calendar and for Plans. Specifies the days in a week, 0 to 6 (Sunday to Saturday). 0 (Sunday) is the default. With regards to the week view Calendar, values greater than 1 will be considered the same as 1.' timezone: type: string description: The IANA time zone identifier for the default time zone used when creating resources in the Brand/Workspace (e.g. America/New_York). relationships: type: object required: - primary_label_set - accounts - logo - dispatch_providers additionalProperties: false properties: primary_label_set: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label_set accounts: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - account logo: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference dispatch_providers: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - dispatch_provider - title: label type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - label attributes: type: object required: - name - color - is_active - uuid additionalProperties: false properties: name: type: string description: The label's name. This value must be unique within the label's label set. uuid: type: string format: uuid description: A unique identifier for the label. color: type: string description: The label's color. A hex color code without the '#' prefix. The color is settable on any non-shared label set, but today it is only rendered by the Opal platform when the label belongs to the workspace's primary label set. Broader rendering across non-primary label sets is upcoming. is_active: type: boolean description: Enable or disable this label. Note that this is different than deleting and it is probably generally advisable to set is_active to false rather than deleting a label because deactivating can be undone via the API. position: type: integer description: By default, the label position is not used and labels are sorted by creation date from oldest to newest. By request, Opal employees can set the sort order of labels within any label set to be `manual` which causes the labels to be sorted by their `position` instead. relationships: type: object additionalProperties: false properties: label_set: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label_set - title: note type: object required: - id - type - attributes additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - note attributes: type: object required: - comment additionalProperties: false properties: comment: type: string created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). readOnly: true updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). readOnly: true - title: story type: object required: - id - type - attributes additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - story attributes: type: object required: - asset_references_count - color - created_at - description - is_shared - is_visible - legacy_is_private - members_count - moments_count - name - scheduled_end_at - scheduled_start_at - strategies_count - updated_at - uuid additionalProperties: false properties: scheduled_start_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). scheduled_end_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). name: type: string color: type: - string - 'null' description: A hex color value with the '#' prefix. asset_references_count: type: - integer - 'null' created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' is_shared: type: - boolean - 'null' is_visible: type: - boolean - 'null' legacy_is_private: type: - boolean - 'null' members_count: type: - integer - 'null' moments_count: type: - integer - 'null' description: Number of Moments created on this Story strategies_count: type: - integer - 'null' updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true uuid: type: - string - 'null' relationships: type: object additionalProperties: false properties: opal: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - opal brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand user: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - user brands: description: An array of Brand Ids stored on key 'shared_on_brand_ids' type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand primary_label: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label - title: privacy_group type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - privacy_group attributes: type: object required: - created_at - updated_at - is_ghost - code_name - show_code_name additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true is_ghost: type: boolean description: 'If `false` the full set of public attributes are returned. If `true` a subset of limited attributes are returned. This flag is based off the permissions granted to the requesting user. ' members_count: type: integer description: The number of users in the privacy group. code_name: type: - string - 'null' description: The name shown to users not in this privacy group. show_code_name: type: boolean description: True if the `code_name` should be shown to users not in this group. relationships: type: object required: - opal - entity - current_privacy_group - pending_members - accepted_members additionalProperties: false properties: opal: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - opal entity: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - moment - content current_privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group pending_members: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - member accepted_members: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - member meta: type: object required: - total - page properties: total: type: integer page: type: object required: - limit - offset properties: limit: type: integer offset: type: integer '400': description: Bad request content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '422': description: Unprocessable entity content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status post: tags: - Moments operationId: CreateMomentV2 summary: Create a new public or private moment. security: - oauth2: - offline_access - api_key: - Session-Token requestBody: content: application/json: schema: type: object required: - data properties: data: type: object required: - type properties: type: type: string enum: - moment attributes: type: object required: - title properties: color: type: - string - 'null' description: Color used to visually identify a moment. day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night scheduled_at: type: string format: date description: An ISO8601 date, formatted per RFC 3339 section 5.6, "full-date". example: '2024-01-31' title: type: string description: The name of the moment. stamp_id: type: string writeOnly: true description: 'The ID of the stamp to apply to the created moment (using its v2 API ID). The stamp ID must be one for a `moment` stamp and not a `post`/`content` stamp, as noted on the stamp resource object''s attribute `stamp_type`. ' relationships: type: object required: - brand properties: brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label stories: description: Stories to associate the moment with. Note that the first story provided will be considered the primary story for the moment. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story example: data: type: moment attributes: day_segment: afternoon title: Fancy Moment relationships: brand: data: id: '1' type: brand labels: data: - id: '2' type: label primary_story: data: id: '3' type: story responses: '201': description: A newly created moment resource. content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - moment attributes: type: object required: - uuid - color - content_count - created_at - day_segment - is_ghost - scheduled_at - title - updated_at additionalProperties: false properties: uuid: type: string format: uuid description: A unique identifier for the moment. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night - null is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true scheduled_at: type: string format: date-time description: An ISO8601 date-time. scheduled_end_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. set_default_post_takedown: type: boolean description: Indicates whether the duration of newly created content should match the duration of this moment readOnly: false title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true is_visible: type: boolean description: Whether or not the given moment has been soft-deleted. readOnly: true relationships: type: object additionalProperties: false properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - note owner: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - user paired_block: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - block posts: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group services: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - service stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story workflow: type: object required: - data - links additionalProperties: false properties: data: type: - object - 'null' required: - type - id additionalProperties: false properties: type: type: string enum: - workflow id: type: string pattern: ^[0-9]+$ links: type: object additionalProperties: false properties: related: type: string '400': description: Bad request content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '409': description: Conflict content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '422': description: Unprocessable entity content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status servers: - url: https://login.ouropal.com /moments/v2/{moment_id}: get: tags: - Moments operationId: ReadMomentV2 summary: Return the specified Moment security: - oauth2: - offline_access - api_key: - Session-Token parameters: - name: moment_id in: path required: true description: The ID of the Moment. schema: type: string - name: fields in: query description: An object keyed by resource type, i.e. \"moment\" or a moment relationship, where each value is a CSV of attributes to include in the response. required: false schema: type: object properties: brand: type: string label: type: string moment: type: string privacy_group: type: string story: type: string style: deepObject explode: true - name: include in: query required: false description: A comma separated value of related objects to include. schema: type: array items: type: string enum: - asset_references - brand - labels - note - primary_asset_reference - primary_story - privacy_group - services - stories style: form explode: false - name: expose in: query required: false description: Expose response data that is only provided by request. schema: type: object properties: unscheduled_moments: type: boolean deprecated: true description: '**[INTERNAL-ONLY] [Unstable]** đŸ´â€â˜ ī¸đŸ‘ģđŸšˇđŸ’Ŗ This parameter can be used to expose Unscheduled Moments to the V2 Moment GET APIs. Opal developers are using this parameter as a migration tool. If you need Moments that are Unscheduled, please see the V3 Moment APIs that offer native support. This parameter should be considered [Unstable] and may be removed at any time without notice of deprecation. Using this parameter will also cause the Moments V2 GET response to deviate from the documented schema. ' responses: '200': description: The requested Moment content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - moment attributes: type: object required: - uuid - color - content_count - created_at - day_segment - is_ghost - scheduled_at - title - updated_at additionalProperties: false properties: uuid: type: string format: uuid description: A unique identifier for the moment. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night - null is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true scheduled_at: type: string format: date-time description: An ISO8601 date-time. scheduled_end_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. set_default_post_takedown: type: boolean description: Indicates whether the duration of newly created content should match the duration of this moment readOnly: false title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true is_visible: type: boolean description: Whether or not the given moment has been soft-deleted. readOnly: true relationships: type: object additionalProperties: false properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - note owner: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - user paired_block: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - block posts: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group services: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - service stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story workflow: type: object required: - data - links additionalProperties: false properties: data: type: - object - 'null' required: - type - id additionalProperties: false properties: type: type: string enum: - workflow id: type: string pattern: ^[0-9]+$ links: type: object additionalProperties: false properties: related: type: string '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status patch: tags: - Moments operationId: UpdateMomentV2 summary: Update the specified Moment security: - oauth2: - offline_access - api_key: - Session-Token parameters: - name: moment_id in: path required: true description: The ID of the Moment. schema: type: string requestBody: content: application/json: schema: type: object required: - data properties: data: type: object required: - id - type properties: id: type: string type: type: string enum: - moment attributes: type: object required: - title properties: color: type: - string - 'null' description: Color used to visually identify a moment. day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night scheduled_at: type: string format: date description: An ISO8601 date, formatted per RFC 3339 section 5.6, "full-date". example: '2024-01-31' title: type: string description: The name of the moment. relationships: type: object required: - brand properties: brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label stories: description: Stories to associate the moment with. Note that the first story provided will be considered the primary story for the moment. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story responses: '200': description: Moment updated content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string pattern: ^[0-9]+$ type: type: string enum: - moment attributes: type: object required: - uuid - color - content_count - created_at - day_segment - is_ghost - scheduled_at - title - updated_at additionalProperties: false properties: uuid: type: string format: uuid description: A unique identifier for the moment. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true day_segment: type: - string - 'null' description: The time of day the moment will occur. enum: - morning - afternoon - evening - night - null is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true scheduled_at: type: string format: date-time description: An ISO8601 date-time. scheduled_end_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. set_default_post_takedown: type: boolean description: Indicates whether the duration of newly created content should match the duration of this moment readOnly: false title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true is_visible: type: boolean description: Whether or not the given moment has been soft-deleted. readOnly: true relationships: type: object additionalProperties: false properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference brand: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - brand labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - note owner: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - user paired_block: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - block posts: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group services: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - service stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story workflow: type: object required: - data - links additionalProperties: false properties: data: type: - object - 'null' required: - type - id additionalProperties: false properties: type: type: string enum: - workflow id: type: string pattern: ^[0-9]+$ links: type: object additionalProperties: false properties: related: type: string '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '409': description: Conflict content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status delete: tags: - Moments operationId: DeleteMomentV2 summary: Delete the specified Moment security: - oauth2: - offline_access - api_key: - Session-Token parameters: - name: moment_id in: path required: true description: The ID of the Moment. schema: type: string responses: '202': description: Moment deleted '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string title: type: string detail: type: string required: - status servers: - url: https://login.ouropal.com /moments/v3: get: tags: - Moments operationId: ReadMomentsV3 summary: Return all moments available to the authenticated user. security: - oauth2: - offline_access - api_key: [] parameters: - name: sort in: 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. Each 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. ' required: false schema: type: string enum: - created_at - day_segment - updated_at - name: fields in: 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`). ' required: false schema: type: object properties: board_object: type: string channel: type: string moment: type: string note: type: string primary_asset_reference: type: string primary_story: type: string story: type: string workspace: type: string style: deepObject explode: true - name: filter in: query description: 'Filters for limiting the results. All timestamp filters (`created_at`, `updated_at`, and `scheduled_at`), use syntax `filter[field_name][gt]=2020-01-01T00:00:00-07:00` Timestamps 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. If 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`. ' required: false schema: type: object properties: account_id: type: array description: Retrieve moments by the associated account UUIDs. items: type: string workspace_id: type: array description: 'The IDs of the workspaces to which results should be filtered. Comma separated list of IDs. If included, will only fetch resources associated with these workspaces. If not included, will return resources associated with all workspaces that the user belongs to. For example, `filter[workspace_id]=798ac6d9-b3fc-4155-88ee-237f43f3404b` will fetch all resources associated with workspace `798ac6d9-b3fc-4155-88ee-237f43f3404b`, while `filter[workspace_id]=798ac6d9-b3fc-4155-88ee-237f43f3404b,d79e513e-9246-454e-80bf-8268bc39cd6e,f2b19a4a-ba0c-49be-8aa7-a1bf68a4a4ed` will fetch any resources associated with workspaces `798ac6d9-b3fc-4155-88ee-237f43f3404b`, `d79e513e-9246-454e-80bf-8268bc39cd6e`, or `f2b19a4a-ba0c-49be-8aa7-a1bf68a4a4ed`. ' items: type: string format: uuid created_at: allOf: - type: object properties: eq: type: string description: 'Equal to filter. If no other filter is specified, `eq` will be assumed. ' gt: type: string description: Greater than filter gteq: type: string description: Greater than or equal to filter lt: type: string description: Less than filter lteq: type: string description: Less than or equal to filter - format: date-time description: 'Filter by the moment created_at time. Uses syntax `filter[created_at][gt]=2020-01-01T00:00:00-07:00`. ' id: type: array description: Retrieve moments by UUID. items: type: string label_id: type: array description: 'Comma separated list of label UUIDs. If included, will only fetch moments associated with these labels. For example, `filter[label_id]=abcd-1234-abcd-1234` will fetch all moments associated with label abcd-1234-abcd-1234, while `filter[label_id]=abcd,efgh,ijkl` will fetch any moment associated with labels abcd, efgh, or ijkl. ' items: type: string scheduled_at: allOf: - type: object properties: eq: type: string description: 'Equal to filter. If no other filter is specified, `eq` will be assumed. ' gt: type: string description: Greater than filter gteq: type: string description: Greater than or equal to filter lt: type: string description: Less than filter lteq: type: string description: Less than or equal to filter - format: date description: 'Filter by the moment scheduled_at date. Uses syntax `filter[scheduled_at][gt]=2020-01-01`. ' search: description: Retrieve moments matching search criteria. type: string channel_id: type: array description: Retrieve moments by the associated channel UUIDs. items: type: string story_id: description: Retrieve moments by the associated story UUID. type: string updated_at: allOf: - type: object properties: eq: type: string description: 'Equal to filter. If no other filter is specified, `eq` will be assumed. ' gt: type: string description: Greater than filter gteq: type: string description: Greater than or equal to filter lt: type: string description: Less than filter lteq: type: string description: Less than or equal to filter - format: date description: 'Filter by the moment updated_at time. Uses syntax `filter[updated_at][gt]=2020-01-01T00:00:00-07:00`. ' style: deepObject explode: true - name: include in: query required: false description: A comma separated value of related objects to include. schema: type: array items: type: string enum: - board_objects - channels - note - owner - primary_asset_reference - primary_story - stories - workspace - schedules style: form explode: false - name: expose in: query required: false description: 'Optionally calculated moment metadata which are not part of responses by default. You request that metadata be included in responses with the `expose` query parameter like: `/moments/v3/moments?expose[moment][meta]` or more granularly `?expose[moment][meta]=is_stamp_template`. ' style: deepObject explode: true schema: type: object additionalProperties: false properties: moment: type: object properties: meta: type: - string - 'null' description: 'Exposing the metadata on each moment resource populates the `meta` key with calculated attributes. If metadata is not exposed, the `meta` key will be an empty object. Detailed documentation on each metadata attribute is available in the response schema documentation. You can specify all moment metadata as `expose[moment][meta]` or any combination of comma separated values from: `is_stamp_template`, `effective_privacy`. For example, `expose[moment][meta]=is_stamp_template,effective_privacy`. Note that if you expose the effective_privacy moment metadata then all moments in the response must belong to the same workspace. In this case, you are required to use the `filter[workspace_id]` query parameter with a single workspace ID. ' - name: page description: Specify an offset and limit for pagination in: query required: false schema: type: object properties: limit: type: integer default: 50 offset: type: integer style: deepObject explode: true responses: '200': description: A collection of moments. content: application/json: schema: type: object required: - data - meta properties: data: type: array items: title: moment type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string description: The moment's UUID. See the `legacy_id` attribute for a `v2`-api compatible ID. type: type: string enum: - moment meta: type: - object - 'null' description: 'Optionally calculated moment metadata which are not part of responses by default. ' additionalProperties: false properties: is_stamp_template: type: boolean description: 'Indicates whether a `moment` can be used as a stamp. Stamps serve as templates for new `moment`s, inheriting notes, content, and labels from the stamped moment template. For additional notes on creating, managing, retrieving, and using stamps, see the [Stamps Overview](v2#tag/Stamps/Stamps-Overview). ' access: type: object deprecated: true description: 'This metadata has moved to the document meta (where it is found on API responses for other resources as well) ' effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - legacy_id - color - content_count - created_at - is_ghost - title - updated_at additionalProperties: false properties: legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object additionalProperties: false required: - owner - workspace properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference owner: title: User type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace board_objects: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note contents: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group channels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - channel stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule workflow: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workflow planning_status: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - planning_status moment_assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_assignee assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user moment_custom_fields: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_custom_field paired_block: allOf: - description: 'Writing this relationship is only allowed for internal Opal clients. External clients should pair a moment and a newly created block using the block''s `POST` endpoint. Only blocks of a type that supports moment pairing are allowed to be paired with moments. Furthermore, this relationship is only writable when patching a moment. ' - type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - block links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri included: type: array items: oneOf: - title: asset_reference type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset_reference attributes: type: object required: - asset_type - content_type - created_at - description - escaped_filename - filename - filesize - format - full_url - height - legacy_id - meta_data - original_url - preview_url - public_id - updated_at - width additionalProperties: false properties: asset_type: type: - string - 'null' content_type: type: - string - 'null' created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' escaped_filename: type: string filename: type: - string - 'null' filesize: type: - integer - 'null' description: Size of file in bytes. format: type: - string - 'null' full_url: type: - string - 'null' height: type: - integer - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. meta_data: type: - object - 'null' original_url: type: - string - 'null' preview_url: type: - string - 'null' public_id: type: - string - 'null' x-not-relationship: true updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true width: type: - integer - 'null' relationships: type: object additionalProperties: false properties: asset: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset cover_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference - title: board_object type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object attributes: type: object required: - position - created_at - updated_at additionalProperties: false properties: position: type: integer description: "An integer indicating the zero-based ordinal position of this \nboard object relative to other board objects.\n" created_at: type: string format: date-time description: An ISO8601 date-time representing the entity's creation date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time representing the entity's most recent updated date-time. readOnly: true relationships: type: object required: - board additionalProperties: false properties: board: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board board_object_collection: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object_collection moment: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment rich_text_document: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - rich_text_document - title: channel type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - channel attributes: type: object required: - color - content_name - created_at - has_placements - icon_name - icon_path - is_active - is_visible - legacy_id - name - system_name - updated_at - web_modules_channel additionalProperties: false properties: color: type: string description: A hex color value with leading hash symbol intact content_name: type: string description: The default name of content for this channel created_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was created. readOnly: true has_placements: type: - boolean - 'null' description: Indicates if the channel supports placements capability icon_name: type: - string - 'null' icon_path: type: - string - 'null' is_active: type: boolean description: Indicates active status of the channel is_visible: type: boolean description: Indicates visibility of the channel legacy_id: type: string description: The ID of the resource in the `v2` APIs. name: type: string description: The name of the channel system_name: type: string description: The unique system name of the channel updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was last updated. readOnly: true web_modules_channel: type: - boolean - 'null' description: Indicates if the channel is of the category "web modules" relationships: type: object required: - asset_reference - content_types - workspace additionalProperties: false properties: asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference content_types: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content_type workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace - title: moment_schedule type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule attributes: type: object required: - created_at - day_segment - end_at - should_end_at_cascade - start_at - updated_at additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true day_segment: type: - string - 'null' enum: - morning - afternoon - evening - night - null end_at: type: - string - 'null' format: date-time description: 'An RFC 3339 date-time for the instant the moment ends. See format discussion on start_at. ' should_end_at_cascade: type: boolean description: 'Indicates whether or not content created within the parent moment should receive the moment''s end_at time by default. ' start_at: type: string format: date-time description: 'An RFC 3339 date-time for the instant the moment starts. The server''s response will always be a timestamp, unlike the date-only format sent to the server in PATCH and POST requests. ' updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - moment additionalProperties: false properties: moment: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment - title: note type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note attributes: type: object required: - comment - created_at - updated_at - legacy_id additionalProperties: false properties: comment: type: - string - 'null' description: A text comment on the note. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true - title: story type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story meta: type: - object - 'null' description: 'Calculated story metadata included unconditionally in responses. ' additionalProperties: false properties: effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - color - created_at - description - is_shared - legacy_id - name - scheduled_end_at - scheduled_start_at - updated_at additionalProperties: false properties: color: type: - string - 'null' description: A hex color value with the '#' prefix. created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' is_shared: type: - boolean - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string scheduled_start_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time scheduled_end_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true relationships: type: object additionalProperties: false properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace shared_workspaces: description: Additional workspaces that the story has been shared to. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false properties: v2_request: type: string description: A link to the equivalent v2 API request for this story. - title: user type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user meta: type: - object - 'null' description: Metadata around the User object properties: workspace_approval_counts: type: object description: Object representing the user's unseen approval counts per Workspace Id. attributes: type: object required: - created_at - email - first_name - full_name - is_active - last_name - title - transliterated_full_name - updated_at - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true email: type: string first_name: type: string full_name: type: string is_active: type: - boolean - 'null' last_name: type: string role_name: type: string title: type: - string - 'null' transliterated_full_name: type: string feature_flags: type: object additionalProperties: type: boolean description: 'A named feature flag and `true` or `false` depending on whether the feature is enabled for the user or not. ' description: 'List of Feature Flags for this user, only available for the currently authenticated User. ' updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the user was last updated. readOnly: true legacy_id: type: string description: An ID that can be used with `v2` APIs. relationships: type: object required: - profile - workspaces additionalProperties: false properties: profile: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user_profile workspaces: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri - title: workspace type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace meta: type: - object - 'null' description: Metadata around the Workspace object properties: user_is_member: type: boolean description: Boolean that represents whether the requesting user is a member of the workspace. attributes: type: object required: - created_at - name - slug - updated_at - start_of_week - timezone - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string description: The name of the workspace. slug: type: - string - 'null' description: The slug for the Workspace. This is a url-safe name for the Workspace. start_of_week: type: number enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: 'The default start weekday index for the week view Calendar and for Plans. Specifies the days in a week, 0 to 6 (Sunday to Saturday). 0 (Sunday) is the default. With regards to the week view Calendar, values greater than 1 will be considered the same as 1.' timezone: type: string description: The IANA time zone identifier for the default time zone used when creating resources in the workspace (e.g. America/New_York). updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - logo - workspace_defaults additionalProperties: false properties: logo: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference workspace_defaults: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace_defaults links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri meta: type: object required: - total - page - resource_type properties: resource_type: type: string total: type: integer page: type: object required: - limit - offset properties: limit: type: integer offset: type: integer '400': description: Bad request content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '422': description: Unprocessable entity content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status post: tags: - Moments operationId: CreateMomentV3 summary: Create a new public or private moment. security: - oauth2: - offline_access - api_key: [] requestBody: content: application/json: schema: type: object required: - data properties: data: type: object required: - type - attributes - relationships properties: type: type: string enum: - moment attributes: type: object required: - title properties: color: type: - string - 'null' description: Color used to visually identify a moment. title: type: string description: The name of the moment. duplicated_from_moment_id: type: string deprecated: true writeOnly: true description: 'Enables duplicating an existing moment (using its legacy ID) instead of creating a blank moment. This property is deprecated in favor of `source_moment_id` which uses a V3 moment ID. ' x-linting-ignore-id-relationship: true source_moment_id: type: string format: uuid writeOnly: true description: 'Enables duplicating an existing moment instead of creating a blank moment. ' x-linting-ignore-id-relationship: true duplication_mode: type: string writeOnly: true description: 'When duplicating, this controls what is duplicated from the existing moment. ' enum: - full_content - moments_only - placeholders_only board_id: type: string description: The UUID of the board to attach the moment to. x-linting-ignore-id-relationship: true stamp_id: type: string writeOnly: true format: uuid description: 'The UUID of the stamp to apply to the created moment. The stamp UUID must be one for a `moment` stamp and not a `post`/`content` stamp, as noted on the stamp resource object''s attribute `stamp_type`. Stamps for a workspace can be retrieved from the V2 Stamps endpoint, noting the `uuid` attribute on the stamp resource object. You cannot use both `stamp_id` and `duplicated_from_moment_id` simultaneously. If both are provided, `stamp_id` will be prioritized, and `duplicated_from_moment_id` will be disregarded. Additionally, when `stamp_id` is used, the `duplication_mode` automatically defaults to `full_content`. Any other value provided for `duplication_mode` will be ignored in this case. ' x-linting-ignore-id-relationship: true relationships: type: object required: - workspace properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label stories: description: Stories to associate the moment with. Note that the first story provided will be considered the primary story for the moment. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule responses: '201': description: A newly created moment resource. content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string description: The moment's UUID. See the `legacy_id` attribute for a `v2`-api compatible ID. type: type: string enum: - moment meta: type: - object - 'null' description: 'Optionally calculated moment metadata which are not part of responses by default. ' additionalProperties: false properties: is_stamp_template: type: boolean description: 'Indicates whether a `moment` can be used as a stamp. Stamps serve as templates for new `moment`s, inheriting notes, content, and labels from the stamped moment template. For additional notes on creating, managing, retrieving, and using stamps, see the [Stamps Overview](v2#tag/Stamps/Stamps-Overview). ' access: type: object deprecated: true description: 'This metadata has moved to the document meta (where it is found on API responses for other resources as well) ' effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - legacy_id - color - content_count - created_at - is_ghost - title - updated_at additionalProperties: false properties: legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object additionalProperties: false required: - owner - workspace properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference owner: title: User type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace board_objects: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note contents: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group channels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - channel stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule workflow: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workflow planning_status: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - planning_status moment_assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_assignee assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user moment_custom_fields: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_custom_field paired_block: allOf: - description: 'Writing this relationship is only allowed for internal Opal clients. External clients should pair a moment and a newly created block using the block''s `POST` endpoint. Only blocks of a type that supports moment pairing are allowed to be paired with moments. Furthermore, this relationship is only writable when patching a moment. ' - type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - block links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri meta: type: object additionalProperties: false properties: access: type: object description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' additionalProperties: false required: - users - groups - resources properties: users: type: array description: 'A list of users that have access to this resource. These users have been given direct access; the list does not include all users who have access via a User Group or inherited resource. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user`s. ' items: type: object additionalProperties: false required: - id - type properties: id: type: string format: uuid type: type: string enum: - user groups: type: array description: 'A list of groups that have access to this resource. These are all User Groups that have been created by an admin of the Opal ahead of time. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user_group`s. Each user group''s name is surfaced as `meta.title` for convenience and each user group''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string enum: - user_group meta: type: object readOnly: true additionalProperties: false required: - title - count properties: title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true resources: type: array description: 'A list of resources from which this resource _might_ inherit membership. The list always contains an entry for every other resource allowed to provide membership to the given resource. Look at the `meta.inherits_membership` property to determine if a given resource''s membership actually is being inherited. Each item in the list is a JSON:API Resource Identifier Object. Entries may have varying `types` but all resources can be retrieved separately from Opal API endpoints to get more information about them. Each resource''s name or title is surfaced as `meta.title` for convenience and each resource''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string meta: type: object additionalProperties: false required: - inherits_membership - title - count properties: inherits_membership: type: boolean title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true included: type: array items: oneOf: - title: asset_reference type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset_reference attributes: type: object required: - asset_type - content_type - created_at - description - escaped_filename - filename - filesize - format - full_url - height - legacy_id - meta_data - original_url - preview_url - public_id - updated_at - width additionalProperties: false properties: asset_type: type: - string - 'null' content_type: type: - string - 'null' created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' escaped_filename: type: string filename: type: - string - 'null' filesize: type: - integer - 'null' description: Size of file in bytes. format: type: - string - 'null' full_url: type: - string - 'null' height: type: - integer - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. meta_data: type: - object - 'null' original_url: type: - string - 'null' preview_url: type: - string - 'null' public_id: type: - string - 'null' x-not-relationship: true updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true width: type: - integer - 'null' relationships: type: object additionalProperties: false properties: asset: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset cover_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference - title: board_object type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object attributes: type: object required: - position - created_at - updated_at additionalProperties: false properties: position: type: integer description: "An integer indicating the zero-based ordinal position of this \nboard object relative to other board objects.\n" created_at: type: string format: date-time description: An ISO8601 date-time representing the entity's creation date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time representing the entity's most recent updated date-time. readOnly: true relationships: type: object required: - board additionalProperties: false properties: board: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board board_object_collection: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object_collection moment: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment rich_text_document: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - rich_text_document - title: channel type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - channel attributes: type: object required: - color - content_name - created_at - has_placements - icon_name - icon_path - is_active - is_visible - legacy_id - name - system_name - updated_at - web_modules_channel additionalProperties: false properties: color: type: string description: A hex color value with leading hash symbol intact content_name: type: string description: The default name of content for this channel created_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was created. readOnly: true has_placements: type: - boolean - 'null' description: Indicates if the channel supports placements capability icon_name: type: - string - 'null' icon_path: type: - string - 'null' is_active: type: boolean description: Indicates active status of the channel is_visible: type: boolean description: Indicates visibility of the channel legacy_id: type: string description: The ID of the resource in the `v2` APIs. name: type: string description: The name of the channel system_name: type: string description: The unique system name of the channel updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was last updated. readOnly: true web_modules_channel: type: - boolean - 'null' description: Indicates if the channel is of the category "web modules" relationships: type: object required: - asset_reference - content_types - workspace additionalProperties: false properties: asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference content_types: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content_type workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace - title: moment_schedule type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule attributes: type: object required: - created_at - day_segment - end_at - should_end_at_cascade - start_at - updated_at additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true day_segment: type: - string - 'null' enum: - morning - afternoon - evening - night - null end_at: type: - string - 'null' format: date-time description: 'An RFC 3339 date-time for the instant the moment ends. See format discussion on start_at. ' should_end_at_cascade: type: boolean description: 'Indicates whether or not content created within the parent moment should receive the moment''s end_at time by default. ' start_at: type: string format: date-time description: 'An RFC 3339 date-time for the instant the moment starts. The server''s response will always be a timestamp, unlike the date-only format sent to the server in PATCH and POST requests. ' updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - moment additionalProperties: false properties: moment: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment - title: note type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note attributes: type: object required: - comment - created_at - updated_at - legacy_id additionalProperties: false properties: comment: type: - string - 'null' description: A text comment on the note. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true - title: story type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story meta: type: - object - 'null' description: 'Calculated story metadata included unconditionally in responses. ' additionalProperties: false properties: effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - color - created_at - description - is_shared - legacy_id - name - scheduled_end_at - scheduled_start_at - updated_at additionalProperties: false properties: color: type: - string - 'null' description: A hex color value with the '#' prefix. created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' is_shared: type: - boolean - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string scheduled_start_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time scheduled_end_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true relationships: type: object additionalProperties: false properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace shared_workspaces: description: Additional workspaces that the story has been shared to. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false properties: v2_request: type: string description: A link to the equivalent v2 API request for this story. - title: user type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user meta: type: - object - 'null' description: Metadata around the User object properties: workspace_approval_counts: type: object description: Object representing the user's unseen approval counts per Workspace Id. attributes: type: object required: - created_at - email - first_name - full_name - is_active - last_name - title - transliterated_full_name - updated_at - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true email: type: string first_name: type: string full_name: type: string is_active: type: - boolean - 'null' last_name: type: string role_name: type: string title: type: - string - 'null' transliterated_full_name: type: string feature_flags: type: object additionalProperties: type: boolean description: 'A named feature flag and `true` or `false` depending on whether the feature is enabled for the user or not. ' description: 'List of Feature Flags for this user, only available for the currently authenticated User. ' updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the user was last updated. readOnly: true legacy_id: type: string description: An ID that can be used with `v2` APIs. relationships: type: object required: - profile - workspaces additionalProperties: false properties: profile: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user_profile workspaces: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri - title: workspace type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace meta: type: - object - 'null' description: Metadata around the Workspace object properties: user_is_member: type: boolean description: Boolean that represents whether the requesting user is a member of the workspace. attributes: type: object required: - created_at - name - slug - updated_at - start_of_week - timezone - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string description: The name of the workspace. slug: type: - string - 'null' description: The slug for the Workspace. This is a url-safe name for the Workspace. start_of_week: type: number enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: 'The default start weekday index for the week view Calendar and for Plans. Specifies the days in a week, 0 to 6 (Sunday to Saturday). 0 (Sunday) is the default. With regards to the week view Calendar, values greater than 1 will be considered the same as 1.' timezone: type: string description: The IANA time zone identifier for the default time zone used when creating resources in the workspace (e.g. America/New_York). updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - logo - workspace_defaults additionalProperties: false properties: logo: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference workspace_defaults: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace_defaults links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri '400': description: Bad request content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '409': description: Conflict content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '422': description: Unprocessable entity content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status servers: - url: https://login.ouropal.com /moments/v3/{moment_id}: get: tags: - Moments operationId: ReadMomentV3 summary: Return the specified Moment security: - oauth2: - offline_access - api_key: [] parameters: - name: moment_id in: path required: true description: The UUID of the Moment. schema: type: string - name: fields in: 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`). ' required: false schema: type: object properties: board_object: type: string channel: type: string moment: type: string note: type: string primary_asset_reference: type: string primary_story: type: string story: type: string workspace: type: string style: deepObject explode: true - name: include in: query required: false description: A comma separated value of related objects to include. schema: type: array items: type: string enum: - board_objects - channels - note - owner - primary_asset_reference - primary_story - stories - workspace - schedules style: form explode: false - name: expose in: query required: false description: 'Optionally calculated moment metadata which are not part of responses by default. You request that metadata be included in responses with the `expose` query parameter like: `/moments/v3/moments?expose[moment][meta]` or `expose[meta][access]`. ' style: deepObject explode: true schema: type: object additionalProperties: false properties: meta: type: object properties: access: type: - string - 'null' description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' moment: type: object properties: meta: type: - string - 'null' description: 'Exposing the metadata on each moment resource populates the `meta` key with calculated attributes. If metadata is not exposed, the `meta` key will be an empty object. Detailed documentation on each metadata attribute is available in the response schema documentation. You can specify all moment metadata as `expose[moment][meta]` or any combination of comma separated values from: `is_stamp_template`, `effective_privacy`. For example, `expose[moment][meta]=is_stamp_template,effective_privacy`. Note that if you expose the effective_privacy moment metadata then all moments in the response must belong to the same workspace. In this case, you are required to use the `filter[workspace_id]` query parameter with a single workspace ID. ' - name: omit in: query required: false description: 'Optionally omit part of the calculated moment metadata. This is currently only available when requesting moment resources from the `/moments/v3/moments` and `/moments/v3/moments/{id}` `GET` endpoints. You request that this metadata be included in responses with the `expose` query parameter like: `/moments/v3/moments?expose[meta][access]`. Then you can omit resource access metadata for paired blocks (if relevant) with `omit[meta][access]=paired_resources`. ' style: deepObject explode: true schema: type: object properties: meta: type: object properties: access: type: array items: type: string enum: - paired_resources responses: '200': description: The requested Moment content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string description: The moment's UUID. See the `legacy_id` attribute for a `v2`-api compatible ID. type: type: string enum: - moment meta: type: - object - 'null' description: 'Optionally calculated moment metadata which are not part of responses by default. ' additionalProperties: false properties: is_stamp_template: type: boolean description: 'Indicates whether a `moment` can be used as a stamp. Stamps serve as templates for new `moment`s, inheriting notes, content, and labels from the stamped moment template. For additional notes on creating, managing, retrieving, and using stamps, see the [Stamps Overview](v2#tag/Stamps/Stamps-Overview). ' access: type: object deprecated: true description: 'This metadata has moved to the document meta (where it is found on API responses for other resources as well) ' effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - legacy_id - color - content_count - created_at - is_ghost - title - updated_at additionalProperties: false properties: legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object additionalProperties: false required: - owner - workspace properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference owner: title: User type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace board_objects: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note contents: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group channels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - channel stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule workflow: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workflow planning_status: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - planning_status moment_assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_assignee assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user moment_custom_fields: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_custom_field paired_block: allOf: - description: 'Writing this relationship is only allowed for internal Opal clients. External clients should pair a moment and a newly created block using the block''s `POST` endpoint. Only blocks of a type that supports moment pairing are allowed to be paired with moments. Furthermore, this relationship is only writable when patching a moment. ' - type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - block links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri meta: type: object additionalProperties: false properties: access: type: object description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' additionalProperties: false required: - users - groups - resources properties: users: type: array description: 'A list of users that have access to this resource. These users have been given direct access; the list does not include all users who have access via a User Group or inherited resource. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user`s. ' items: type: object additionalProperties: false required: - id - type properties: id: type: string format: uuid type: type: string enum: - user groups: type: array description: 'A list of groups that have access to this resource. These are all User Groups that have been created by an admin of the Opal ahead of time. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user_group`s. Each user group''s name is surfaced as `meta.title` for convenience and each user group''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string enum: - user_group meta: type: object readOnly: true additionalProperties: false required: - title - count properties: title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true resources: type: array description: 'A list of resources from which this resource _might_ inherit membership. The list always contains an entry for every other resource allowed to provide membership to the given resource. Look at the `meta.inherits_membership` property to determine if a given resource''s membership actually is being inherited. Each item in the list is a JSON:API Resource Identifier Object. Entries may have varying `types` but all resources can be retrieved separately from Opal API endpoints to get more information about them. Each resource''s name or title is surfaced as `meta.title` for convenience and each resource''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string meta: type: object additionalProperties: false required: - inherits_membership - title - count properties: inherits_membership: type: boolean title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true included: type: array items: oneOf: - title: asset_reference type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset_reference attributes: type: object required: - asset_type - content_type - created_at - description - escaped_filename - filename - filesize - format - full_url - height - legacy_id - meta_data - original_url - preview_url - public_id - updated_at - width additionalProperties: false properties: asset_type: type: - string - 'null' content_type: type: - string - 'null' created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' escaped_filename: type: string filename: type: - string - 'null' filesize: type: - integer - 'null' description: Size of file in bytes. format: type: - string - 'null' full_url: type: - string - 'null' height: type: - integer - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. meta_data: type: - object - 'null' original_url: type: - string - 'null' preview_url: type: - string - 'null' public_id: type: - string - 'null' x-not-relationship: true updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true width: type: - integer - 'null' relationships: type: object additionalProperties: false properties: asset: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset cover_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference - title: board_object type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object attributes: type: object required: - position - created_at - updated_at additionalProperties: false properties: position: type: integer description: "An integer indicating the zero-based ordinal position of this \nboard object relative to other board objects.\n" created_at: type: string format: date-time description: An ISO8601 date-time representing the entity's creation date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time representing the entity's most recent updated date-time. readOnly: true relationships: type: object required: - board additionalProperties: false properties: board: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board board_object_collection: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object_collection moment: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment rich_text_document: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - rich_text_document - title: channel type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - channel attributes: type: object required: - color - content_name - created_at - has_placements - icon_name - icon_path - is_active - is_visible - legacy_id - name - system_name - updated_at - web_modules_channel additionalProperties: false properties: color: type: string description: A hex color value with leading hash symbol intact content_name: type: string description: The default name of content for this channel created_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was created. readOnly: true has_placements: type: - boolean - 'null' description: Indicates if the channel supports placements capability icon_name: type: - string - 'null' icon_path: type: - string - 'null' is_active: type: boolean description: Indicates active status of the channel is_visible: type: boolean description: Indicates visibility of the channel legacy_id: type: string description: The ID of the resource in the `v2` APIs. name: type: string description: The name of the channel system_name: type: string description: The unique system name of the channel updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was last updated. readOnly: true web_modules_channel: type: - boolean - 'null' description: Indicates if the channel is of the category "web modules" relationships: type: object required: - asset_reference - content_types - workspace additionalProperties: false properties: asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference content_types: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content_type workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace - title: moment_schedule type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule attributes: type: object required: - created_at - day_segment - end_at - should_end_at_cascade - start_at - updated_at additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true day_segment: type: - string - 'null' enum: - morning - afternoon - evening - night - null end_at: type: - string - 'null' format: date-time description: 'An RFC 3339 date-time for the instant the moment ends. See format discussion on start_at. ' should_end_at_cascade: type: boolean description: 'Indicates whether or not content created within the parent moment should receive the moment''s end_at time by default. ' start_at: type: string format: date-time description: 'An RFC 3339 date-time for the instant the moment starts. The server''s response will always be a timestamp, unlike the date-only format sent to the server in PATCH and POST requests. ' updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - moment additionalProperties: false properties: moment: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment - title: note type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note attributes: type: object required: - comment - created_at - updated_at - legacy_id additionalProperties: false properties: comment: type: - string - 'null' description: A text comment on the note. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true - title: story type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story meta: type: - object - 'null' description: 'Calculated story metadata included unconditionally in responses. ' additionalProperties: false properties: effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - color - created_at - description - is_shared - legacy_id - name - scheduled_end_at - scheduled_start_at - updated_at additionalProperties: false properties: color: type: - string - 'null' description: A hex color value with the '#' prefix. created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' is_shared: type: - boolean - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string scheduled_start_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time scheduled_end_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true relationships: type: object additionalProperties: false properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace shared_workspaces: description: Additional workspaces that the story has been shared to. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false properties: v2_request: type: string description: A link to the equivalent v2 API request for this story. - title: user type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user meta: type: - object - 'null' description: Metadata around the User object properties: workspace_approval_counts: type: object description: Object representing the user's unseen approval counts per Workspace Id. attributes: type: object required: - created_at - email - first_name - full_name - is_active - last_name - title - transliterated_full_name - updated_at - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true email: type: string first_name: type: string full_name: type: string is_active: type: - boolean - 'null' last_name: type: string role_name: type: string title: type: - string - 'null' transliterated_full_name: type: string feature_flags: type: object additionalProperties: type: boolean description: 'A named feature flag and `true` or `false` depending on whether the feature is enabled for the user or not. ' description: 'List of Feature Flags for this user, only available for the currently authenticated User. ' updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the user was last updated. readOnly: true legacy_id: type: string description: An ID that can be used with `v2` APIs. relationships: type: object required: - profile - workspaces additionalProperties: false properties: profile: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user_profile workspaces: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri - title: workspace type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace meta: type: - object - 'null' description: Metadata around the Workspace object properties: user_is_member: type: boolean description: Boolean that represents whether the requesting user is a member of the workspace. attributes: type: object required: - created_at - name - slug - updated_at - start_of_week - timezone - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string description: The name of the workspace. slug: type: - string - 'null' description: The slug for the Workspace. This is a url-safe name for the Workspace. start_of_week: type: number enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: 'The default start weekday index for the week view Calendar and for Plans. Specifies the days in a week, 0 to 6 (Sunday to Saturday). 0 (Sunday) is the default. With regards to the week view Calendar, values greater than 1 will be considered the same as 1.' timezone: type: string description: The IANA time zone identifier for the default time zone used when creating resources in the workspace (e.g. America/New_York). updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - logo - workspace_defaults additionalProperties: false properties: logo: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference workspace_defaults: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace_defaults links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status patch: tags: - Moments operationId: UpdateMomentV3 x-Operation-ID: UpdateMomentV3 summary: Update the specified Moment security: - oauth2: - offline_access - api_key: [] parameters: - name: moment_id in: path required: true description: The UUID of the Moment. schema: type: string - name: expose in: query required: false description: 'Optionally calculated moment metadata which are not part of responses by default. You request that metadata be included in responses with the `expose` query parameter like: `/moments/v3/moments?expose[moment][meta]` or `expose[meta][access]`. ' style: deepObject explode: true schema: type: object additionalProperties: false properties: meta: type: object properties: access: type: - string - 'null' description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' moment: type: object properties: meta: type: - string - 'null' description: 'Exposing the metadata on each moment resource populates the `meta` key with calculated attributes. If metadata is not exposed, the `meta` key will be an empty object. Detailed documentation on each metadata attribute is available in the response schema documentation. You can specify all moment metadata as `expose[moment][meta]` or any combination of comma separated values from: `is_stamp_template`, `effective_privacy`. For example, `expose[moment][meta]=is_stamp_template,effective_privacy`. Note that if you expose the effective_privacy moment metadata then all moments in the response must belong to the same workspace. In this case, you are required to use the `filter[workspace_id]` query parameter with a single workspace ID. ' requestBody: content: application/json: schema: type: object required: - data properties: data: type: object required: - id - type properties: id: type: string type: type: string enum: - moment attributes: type: object properties: color: type: - string - 'null' description: Color used to visually identify a moment. title: type: string description: The name of the moment. relationships: type: object properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label primary_asset_reference: description: Asset for moment cover image type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference stories: description: Stories to associate the moment with. Note that the first story provided will be considered the primary story for the moment. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule planning_status: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - planning_status assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user paired_block: allOf: - description: 'Writing this relationship is only allowed for internal Opal clients. External clients should pair a moment and a newly created block using the block''s `POST` endpoint. Only blocks of a type that supports moment pairing are allowed to be paired with moments. Furthermore, this relationship is only writable when patching a moment. ' - type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - block meta: type: object additionalProperties: false properties: access: type: object deprecated: true description: 'Access metadata should be written at the document level, not the resource level. ' meta: type: object properties: access: type: object description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' additionalProperties: false properties: users: type: array description: 'A list of users that have access to this resource. These users have been given direct access; the list does not include all users who have access via a User Group or inherited resource. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user`s. ' items: type: object additionalProperties: false required: - id - type properties: id: type: string format: uuid type: type: string enum: - user groups: type: array description: 'A list of groups that have access to this resource. These are all User Groups that have been created by an admin of the Opal ahead of time. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user_group`s. ' items: type: object additionalProperties: false required: - id - type properties: id: type: string format: uuid type: type: string enum: - user_group resources: type: array description: 'A list of resources from which this resource _might_ inherit membership. The list always contains an entry for every other resource allowed to provide membership to the given resource. Set the `meta.inherits_membership` property to determine if a given resource''s membership actually is being inherited. Each item in the list is a JSON:API Resource Identifier Object. Entries may have varying `types`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string meta: type: object additionalProperties: false required: - inherits_membership properties: inherits_membership: type: boolean responses: '200': description: Moment updated content: application/json: schema: type: object required: - data properties: data: title: moment type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string description: The moment's UUID. See the `legacy_id` attribute for a `v2`-api compatible ID. type: type: string enum: - moment meta: type: - object - 'null' description: 'Optionally calculated moment metadata which are not part of responses by default. ' additionalProperties: false properties: is_stamp_template: type: boolean description: 'Indicates whether a `moment` can be used as a stamp. Stamps serve as templates for new `moment`s, inheriting notes, content, and labels from the stamped moment template. For additional notes on creating, managing, retrieving, and using stamps, see the [Stamps Overview](v2#tag/Stamps/Stamps-Overview). ' access: type: object deprecated: true description: 'This metadata has moved to the document meta (where it is found on API responses for other resources as well) ' effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - legacy_id - color - content_count - created_at - is_ghost - title - updated_at additionalProperties: false properties: legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. color: type: - string - 'null' description: Color used to visually identify a moment. content_count: type: integer description: Number of content belonging to the given moment. readOnly: true is_ghost: type: boolean description: Indicates whether the moment is redacted for the requesting user. readOnly: true title: type: string description: The name of the moment. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object additionalProperties: false required: - owner - workspace properties: asset_references: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference owner: title: User type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace board_objects: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object labels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - label note: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note contents: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content primary_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference primary_story: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - story privacy_group: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - privacy_group channels: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - channel stories: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story schedules: description: One or more schedules (currently only 1 schedule per moment is supported). type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule workflow: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workflow planning_status: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - planning_status moment_assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_assignee assignees: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user moment_custom_fields: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_custom_field paired_block: allOf: - description: 'Writing this relationship is only allowed for internal Opal clients. External clients should pair a moment and a newly created block using the block''s `POST` endpoint. Only blocks of a type that supports moment pairing are allowed to be paired with moments. Furthermore, this relationship is only writable when patching a moment. ' - type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - block links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri meta: type: object additionalProperties: false properties: access: type: object description: 'Information about who has access to the given resource. This metadata is only available for single (non-batch) `GET` / `PATCH` / `POST` requests, and is not returned by default. Add `expose[meta][access]` to your query parameters to request it in the response body. ' additionalProperties: false required: - users - groups - resources properties: users: type: array description: 'A list of users that have access to this resource. These users have been given direct access; the list does not include all users who have access via a User Group or inherited resource. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user`s. ' items: type: object additionalProperties: false required: - id - type properties: id: type: string format: uuid type: type: string enum: - user groups: type: array description: 'A list of groups that have access to this resource. These are all User Groups that have been created by an admin of the Opal ahead of time. Each item in the list is a JSON:API Resource Identifier Object. All entries are `user_group`s. Each user group''s name is surfaced as `meta.title` for convenience and each user group''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string enum: - user_group meta: type: object readOnly: true additionalProperties: false required: - title - count properties: title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true resources: type: array description: 'A list of resources from which this resource _might_ inherit membership. The list always contains an entry for every other resource allowed to provide membership to the given resource. Look at the `meta.inherits_membership` property to determine if a given resource''s membership actually is being inherited. Each item in the list is a JSON:API Resource Identifier Object. Entries may have varying `types` but all resources can be retrieved separately from Opal API endpoints to get more information about them. Each resource''s name or title is surfaced as `meta.title` for convenience and each resource''s membership count (including all inherited membership) is surfaced as `meta.count`. ' items: type: object additionalProperties: false required: - id - type - meta properties: id: type: string format: uuid type: type: string meta: type: object additionalProperties: false required: - inherits_membership - title - count properties: inherits_membership: type: boolean title: type: string readOnly: true count: type: integer minimum: 0 readOnly: true included: type: array items: oneOf: - title: asset_reference type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset_reference attributes: type: object required: - asset_type - content_type - created_at - description - escaped_filename - filename - filesize - format - full_url - height - legacy_id - meta_data - original_url - preview_url - public_id - updated_at - width additionalProperties: false properties: asset_type: type: - string - 'null' content_type: type: - string - 'null' created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' escaped_filename: type: string filename: type: - string - 'null' filesize: type: - integer - 'null' description: Size of file in bytes. format: type: - string - 'null' full_url: type: - string - 'null' height: type: - integer - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. meta_data: type: - object - 'null' original_url: type: - string - 'null' preview_url: type: - string - 'null' public_id: type: - string - 'null' x-not-relationship: true updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true width: type: - integer - 'null' relationships: type: object additionalProperties: false properties: asset: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - asset cover_asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference - title: board_object type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object attributes: type: object required: - position - created_at - updated_at additionalProperties: false properties: position: type: integer description: "An integer indicating the zero-based ordinal position of this \nboard object relative to other board objects.\n" created_at: type: string format: date-time description: An ISO8601 date-time representing the entity's creation date-time. readOnly: true updated_at: type: string format: date-time description: An ISO8601 date-time representing the entity's most recent updated date-time. readOnly: true relationships: type: object required: - board additionalProperties: false properties: board: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board board_object_collection: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - board_object_collection moment: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment rich_text_document: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - rich_text_document - title: channel type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - channel attributes: type: object required: - color - content_name - created_at - has_placements - icon_name - icon_path - is_active - is_visible - legacy_id - name - system_name - updated_at - web_modules_channel additionalProperties: false properties: color: type: string description: A hex color value with leading hash symbol intact content_name: type: string description: The default name of content for this channel created_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was created. readOnly: true has_placements: type: - boolean - 'null' description: Indicates if the channel supports placements capability icon_name: type: - string - 'null' icon_path: type: - string - 'null' is_active: type: boolean description: Indicates active status of the channel is_visible: type: boolean description: Indicates visibility of the channel legacy_id: type: string description: The ID of the resource in the `v2` APIs. name: type: string description: The name of the channel system_name: type: string description: The unique system name of the channel updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the channel was last updated. readOnly: true web_modules_channel: type: - boolean - 'null' description: Indicates if the channel is of the category "web modules" relationships: type: object required: - asset_reference - content_types - workspace additionalProperties: false properties: asset_reference: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference content_types: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - content_type workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace - title: moment_schedule type: object required: - id - type - attributes - relationships additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment_schedule attributes: type: object required: - created_at - day_segment - end_at - should_end_at_cascade - start_at - updated_at additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true day_segment: type: - string - 'null' enum: - morning - afternoon - evening - night - null end_at: type: - string - 'null' format: date-time description: 'An RFC 3339 date-time for the instant the moment ends. See format discussion on start_at. ' should_end_at_cascade: type: boolean description: 'Indicates whether or not content created within the parent moment should receive the moment''s end_at time by default. ' start_at: type: string format: date-time description: 'An RFC 3339 date-time for the instant the moment starts. The server''s response will always be a timestamp, unlike the date-only format sent to the server in PATCH and POST requests. ' updated_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - moment additionalProperties: false properties: moment: type: object required: - data additionalProperties: false properties: data: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - moment - title: note type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - note attributes: type: object required: - comment - created_at - updated_at - legacy_id additionalProperties: false properties: comment: type: - string - 'null' description: A text comment on the note. created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true - title: story type: object required: - id - type - attributes additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - story meta: type: - object - 'null' description: 'Calculated story metadata included unconditionally in responses. ' additionalProperties: false properties: effective_privacy: type: string enum: - whole_workspace - some_but_not_all description: 'The effective privacy of a resource is calculated based on all direct and inherited access. If a resource or any of its parents that it inherits access from are accessible to the entire workspace, the effective privacy is `whole_workspace`. Otherwise, the effective privacy is `some_but_not_all`. ' attributes: type: object required: - color - created_at - description - is_shared - legacy_id - name - scheduled_end_at - scheduled_start_at - updated_at additionalProperties: false properties: color: type: - string - 'null' description: A hex color value with the '#' prefix. created_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true description: type: - string - 'null' is_shared: type: - boolean - 'null' legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string scheduled_start_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time scheduled_end_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time updated_at: type: string description: An ISO8601 date-time. Formatted as an 'Internet Date/Time' (RFC 3339). format: date-time readOnly: true relationships: type: object additionalProperties: false properties: workspace: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace shared_workspaces: description: Additional workspaces that the story has been shared to. type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false properties: v2_request: type: string description: A link to the equivalent v2 API request for this story. - title: user type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user meta: type: - object - 'null' description: Metadata around the User object properties: workspace_approval_counts: type: object description: Object representing the user's unseen approval counts per Workspace Id. attributes: type: object required: - created_at - email - first_name - full_name - is_active - last_name - title - transliterated_full_name - updated_at - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true email: type: string first_name: type: string full_name: type: string is_active: type: - boolean - 'null' last_name: type: string role_name: type: string title: type: - string - 'null' transliterated_full_name: type: string feature_flags: type: object additionalProperties: type: boolean description: 'A named feature flag and `true` or `false` depending on whether the feature is enabled for the user or not. ' description: 'List of Feature Flags for this user, only available for the currently authenticated User. ' updated_at: type: string format: date-time description: An ISO8601 date-time indicating when the user was last updated. readOnly: true legacy_id: type: string description: An ID that can be used with `v2` APIs. relationships: type: object required: - profile - workspaces additionalProperties: false properties: profile: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - user_profile workspaces: type: object required: - data additionalProperties: false properties: data: type: array items: type: object required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri - title: workspace type: object required: - id - type - attributes - relationships - links additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace meta: type: - object - 'null' description: Metadata around the Workspace object properties: user_is_member: type: boolean description: Boolean that represents whether the requesting user is a member of the workspace. attributes: type: object required: - created_at - name - slug - updated_at - start_of_week - timezone - legacy_id additionalProperties: false properties: created_at: type: string format: date-time description: An ISO8601 date-time. readOnly: true legacy_id: type: string description: A legacy ID that can be used with `v2` API endpoints. name: type: string description: The name of the workspace. slug: type: - string - 'null' description: The slug for the Workspace. This is a url-safe name for the Workspace. start_of_week: type: number enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 description: 'The default start weekday index for the week view Calendar and for Plans. Specifies the days in a week, 0 to 6 (Sunday to Saturday). 0 (Sunday) is the default. With regards to the week view Calendar, values greater than 1 will be considered the same as 1.' timezone: type: string description: The IANA time zone identifier for the default time zone used when creating resources in the workspace (e.g. America/New_York). updated_at: type: - string - 'null' format: date-time description: An ISO8601 date-time. readOnly: true relationships: type: object required: - logo - workspace_defaults additionalProperties: false properties: logo: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string type: type: string enum: - asset_reference workspace_defaults: type: object required: - data additionalProperties: false properties: data: type: - object - 'null' required: - id - type additionalProperties: false properties: id: type: string format: uuid type: type: string enum: - workspace_defaults links: type: object additionalProperties: false required: - v2_request properties: v2_request: type: string format: uri '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '409': description: Conflict content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status delete: tags: - Moments operationId: DeleteMomentV3 summary: Delete the specified Moment security: - oauth2: - offline_access - api_key: [] parameters: - name: moment_id in: path required: true description: The UUID of the Moment. schema: type: string responses: '204': description: Moment deleted '401': description: Unauthorized content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '403': description: Forbidden content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status '404': description: Not found content: application/json: schema: type: object required: - errors properties: errors: type: array items: type: object properties: status: type: string description: The http status code of the error response. title: type: string description: A short, human-readable summary of the error. detail: type: string description: A human-readable explanation of the error. code: type: string description: 'An system-readable error code to provide additional specificity for the error. ' required: - status servers: - url: https://login.ouropal.com components: securitySchemes: api_key: type: apiKey description: (Deprecated) This API also supports authentication via an API or session token set in the request headers. in: header name: Session-Token oauth2: type: oauth2 description: This API uses OAuth 2.0 with the authorization code grant flow. You can find more detailed authentication instructions in the [Authentication Strategies](/api/documentation#section/Authentication-Strategies/OAuth-2.0) section. flows: authorizationCode: authorizationUrl: /oauth2/auth tokenUrl: /oauth2/token scopes: offline_access: Include this scope if you wish to receive a refresh token anonymous_oauth: type: oauth2 description: 'The OAuth 2.0 client credentials flow is used for secure server-server requests when Opal does not need to associate a request with a particular Opal user. These anonymous requests are instead authorized based on the OAuth scope. ' flows: clientCredentials: tokenUrl: /oauth/token scopes: write:onboarding: Include this scope if you wish to make API requests to onboard new Opals. presentation_share_cookie: type: apiKey description: 'A cookie set and read by the Monolith service that authorizes a non-opal user to view a presentation and the resources within it. Other services can rely on this cookie by asking Monolith to authenticate it. ' in: cookie name: share_token x-refined-from: - opal-asgard-bff-openapi.yml - opal-v2-openapi.yml - opal-v3-openapi.yml x-tagGroups: - name: âš ī¸ Unstable tags: - Plans - Blocks - Custom Fields - name: â„šī¸ Proposed tags: - Moments - Smart Blocks - In Market - name: 🔮 Experimental tags: - Experimental