MessageRequestSkipped.Flattened

2025-01-01 | ๐Ÿ“‘ 3014 words | โฑ 31 mins | ๐Ÿงพ History | โœ NHS Notify | ๐Ÿ”‘ NHS Notify

No description available.

Known Issues / Todo

  • โ›… This page is draft and is subject to rapid change, and may not be fully accurate or complete

MessageRequestSkipped.Flattened

No description available.

Schema Information

  • Schema ID: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.flattened.schema.json
  • Schema Version: https://json-schema.org/draft/2020-12/schema
  • Source File: digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.flattened.schema.yaml

Properties

specversion

Type: string

CloudEvents specification version (fixed to 1.0).

Constant value: 1.0 Examples: 1.0 Comment: CloudEvents version used. Core attributes: specversion,id,source,type (+ optional subject,time,datacontenttype,dataschema,data). Ref: CloudEvents core spec.

id

Type: string

Unique identifier for this event instance (UUID).

Format: uuid Minimum length: 1 Examples: 6f1c2a53-3d54-4a0a-9a0b-0e9ae2d4c111 Comment: Unique per (source,id). This should be a randomly generated guid that represents the id of the event itself.

source

Type: unknown

No description available.

subject

Type: string

Resource path (no leading slash) within the source made of lowercase segments separated by โ€˜/โ€™.

Format: uri-reference Pattern: ^(?:[a-z0-9-]+)(?:/[a-z0-9-]+)*$ Minimum length: 5 Examples: customer/920fca11-596a-4eca-9c47-99f624614658/order/769acdd4-6a47-496f-999f-76a6fd2c3959/item/4f5e17c0-ec57-4cee-9a86-14580cf5af7d Comment: URI path: must not start with โ€˜/โ€™, only lowercase alphanumeric and hyphen segments separated by โ€˜/โ€™, must not end with โ€˜/โ€™.

type

Type: string

Versioned event type (uk.nhs.notify.*..vN) using reverse-DNS style; final segment MUST be .v; ambiguous verbs (completed, finished, updated, changed, processed, handled, status, started, failed) disallowed.

Minimum length: 1 Examples: uk.nhs.notify.ordering.order.read.v1 Comment: NHS naming: lower-dot namespaced; version suffix required (.v); banned tokens anywhere before version: completed, finished, updated, changed, processed, handled, status, started, failed.

time

Type: string

Timestamp when the event occurred (RFC 3339).

Format: date-time Examples: 2025-10-01T10:15:30.000Z Comment: RFC3339 UTC occurred-at (REQUIRED in NHS profile).

datacontenttype

Type: string

Media type for the data field (fixed to application/json).

Constant value: application/json Examples: application/json Comment: Usually application/json.

dataschema

Type: unknown

No description available.

data

Type: unknown

No description available.

traceparent

Type: string

W3C Trace Context traceparent header value.

Pattern: ^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$ Minimum length: 1 Examples: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01 Comment: W3C Trace Context traceparent (required when tracing used).

tracestate

Type: string

Optional W3C Trace Context tracestate header value.

Examples: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE Comment: W3C Trace Context tracestate (optional).

partitionkey

Type: string

Partition / ordering key (lowercase alphanumerics and hyphen, 1-64 chars).

Pattern: ^[a-z0-9-]+$ Minimum length: 1 Maximum length: 64 Examples: customer-920fca11 Comment: Non-empty partition key for scaling / causal grouping. Must be 1-64 characters, only lowercase letters, numbers, and hyphen.

recordedtime

Type: string

Timestamp when the event was recorded/persisted (should be >= time).

Format: date-time Examples: 2025-10-01T10:15:30.250Z Comment: Bitemporal created-at; should be >= time.

sampledrate

Type: integer

Sampling factor: number of similar occurrences this event represents.

Minimum: 1 Examples: 5 Comment: Integer > 0 indicating how many similar occurrences this event represents.

sequence

Type: string

Zero-padded 20 digit numeric sequence (lexicographically sortable).

Pattern: ^\d{20}$ Examples: 00000000000000000042 Comment: Lexicographically comparable ordering string per source. Must be a string of exactly 20 digits, left-padded with zeros, representing a 64-bit unsigned integer.

severitytext

Type: string

Log severity level name.

Allowed values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL Examples: DEBUG Comment: Severity text (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, etc.).

severitynumber

Type: integer

Numeric severity (TRACE=0, DEBUG=1, INFO=2, WARN=3, ERROR=4, FATAL=5).

Minimum: 0 Maximum: 5 Examples: 1 Comment: Numeric severity corresponding to severitytext (TRACE=0..FATAL=5).

dataclassification

Type: string

Data sensitivity classification.

Allowed values: public, internal, confidential, restricted Examples: restricted Comment: Data classification e.g. public|internal|confidential|restricted.

dataregulation

Type: string

Regulatory regime tag applied to this data.

Allowed values: GDPR, HIPAA, PCI-DSS, ISO-27001, NIST-800-53, CCPA Examples: ISO-27001 Comment: Regulation tags e.g. GDPR, HIPAA.

datacategory

Type: string

Data category classification (e.g. standard, special-category).

Allowed values: non-sensitive, standard, sensitive, special-category Examples: sensitive Comment: Example: special-category (GDPR), phi (HIPAA).

Required Fields

  • specversion
  • id
  • source
  • subject
  • type
  • time
  • recordedtime
  • severitynumber
  • traceparent
  • data

Type

object

Raw Schema

$id: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/events/uk.nhs.notify.digital.letters.messages.request.skipped.v1.flattened.schema.json
$schema: https://json-schema.org/draft/2020-12/schema
title: MessageRequestSkipped
type: object
properties:
  specversion:
    type: string
    const: '1.0'
    description: CloudEvents specification version (fixed to 1.0).
    examples:
    - '1.0'
    $comment: 'CloudEvents version used. Core attributes: specversion,id,source,type
      (+ optional subject,time,datacontenttype,dataschema,data). Ref: CloudEvents
      core spec.'
  id:
    type: string
    format: uuid
    minLength: 1
    description: Unique identifier for this event instance (UUID).
    examples:
    - 6f1c2a53-3d54-4a0a-9a0b-0e9ae2d4c111
    $comment: Unique per (source,id). This should be a randomly generated guid that
      represents the id of the event itself.
  source:
    allOf:
    - type: string
      pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/(data-plane|control-plane)(?:/[a-z0-9-]+)*$
      minLength: 40
      format: uri-reference
      description: 'Logical event producer path: /nhs/england/notify/{environment}/{instance}/{plane}[/{service}...]
        where environment=production|staging|development|uat, instance=primary|secondary|dev-{digits},
        plane=data-plane|control-plane, and optional service/lowercase tokens follow.'
      examples:
      - /nhs/england/notify/production/primary/data-plane/ordering
      - /nhs/england/notify/staging/secondary/control-plane/audit
      - /nhs/england/notify/development/dev-12345/data-plane/ordering
      $comment: 'Segments: /nhs/england/notify/{environment}/{instance}/{plane}[/{token}...];
        environment in (production|staging|development|uat); instance in (primary|secondary|dev-<digits>
        for ephemeral/dev sandboxes); plane in (data-plane|control-plane); subsequent
        optional segments: lowercase alphanumeric or hyphen; no trailing slash.'
    - type: string
      pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/(data-plane|control-plane)/digitalletters
      minLength: 40
      format: uri-reference
    - type: string
      pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/(data-plane|control-plane)/digitalletters/messages
      minLength: 40
      format: uri-reference
    - type: string
      pattern: ^/nhs/england/notify/(production|staging|development|uat)/(primary|secondary|dev-[0-9]+)/data-plane/digitalletters/messages
      description: Event source for digital letters.
  subject:
    type: string
    pattern: ^(?:[a-z0-9-]+)(?:/[a-z0-9-]+)*$
    minLength: 5
    format: uri-reference
    description: Resource path (no leading slash) within the source made of lowercase
      segments separated by '/'.
    examples:
    - customer/920fca11-596a-4eca-9c47-99f624614658/order/769acdd4-6a47-496f-999f-76a6fd2c3959/item/4f5e17c0-ec57-4cee-9a86-14580cf5af7d
    $comment: 'URI path: must not start with ''/'', only lowercase alphanumeric and
      hyphen segments separated by ''/'', must not end with ''/''.'
  type:
    type: string
    minLength: 1
    allOf:
    - name: NHS Notify versioned event type pattern
      type: string
      pattern: ^uk\.nhs\.notify\.[a-z0-9]+(?:\.[a-z0-9]+)*\.v[0-9]+$
      description: Versioned event type (uk.nhs.notify.*.<segments>.vN) using reverse-DNS
        style segments ending with .v<digits> (e.g. .v1, .v10).
      examples:
      - uk.nhs.notify.ordering.order.read.v1
      $comment: 'Segments: lowercase a-z0-9; final segment is version marker v<digits>.
        Allows arbitrary positive integer (no leading zero rule enforced).'
    - name: Disallow 'completed' token
      type: string
      not:
        pattern: (?:^|\.)completed(?:\.|$)
      description: Disallow ambiguous past tense token 'completed'. Use a domain-specific
        verb like read, created, published.
    - name: Disallow 'finished' token
      type: string
      not:
        pattern: (?:^|\.)finished(?:\.|$)
      description: Disallow 'finished' which is temporal and ambiguous; choose a workflow-specific
        terminal verb.
    - name: Disallow 'updated' token
      type: string
      not:
        pattern: (?:^|\.)updated(?:\.|$)
      description: Disallow 'updated'; prefer a concrete action (e.g. order.modified.v1
        -> order.change.applied).
    - name: Disallow 'changed' token
      type: string
      not:
        pattern: (?:^|\.)changed(?:\.|$)
      description: Disallow vague 'changed'; specify the nature of the change (e.g.
        status.changed -> status.transitioned).
    - name: Disallow 'processed' token
      type: string
      not:
        pattern: (?:^|\.)processed(?:\.|$)
      description: Disallow 'processed'; state WHAT happened, not that a process occurred.
    - name: Disallow 'handled' token
      type: string
      not:
        pattern: (?:^|\.)handled(?:\.|$)
      description: Disallow 'handled'; overly generic and not business meaningful.
    - name: Disallow 'status' token
      type: string
      not:
        pattern: (?:^|\.)status(?:\.|$)
      description: Disallow bare 'status'; event types should represent a domain occurrence,
        not a generic label.
    - name: Disallow 'started' token
      type: string
      not:
        pattern: (?:^|\.)started(?:\.|$)
      description: Disallow 'started'; prefer a specific lifecycle action (e.g. session.opened).
    - name: Disallow 'failed' token
      type: string
      not:
        pattern: (?:^|\.)failed(?:\.|$)
      description: Disallow 'failed'; model the concrete failure (e.g. payment.authorization.failed
        -> payment.authorization.rejected).
    - type: string
      minLength: 1
      allOf:
      - name: NHS Notify versioned event type pattern
        type: string
        pattern: ^uk\.nhs\.notify\.digital\.letters\.[a-z0-9]+(?:\.[a-z0-9]+)*\.v[0-9]+$
    - type: string
      minLength: 1
      allOf:
      - name: NHS Notify versioned event type pattern
        type: string
        pattern: ^uk\.nhs\.notify\.digital\.letters\.messages\.[a-z0-9]+(?:\.[a-z0-9]+)*\.v[0-9]+$
    - type: string
      const: uk.nhs.notify.digital.letters.messages.request.skipped.v1
      description: Concrete versioned event type string for this event (.vN suffix).
    description: Versioned event type (uk.nhs.notify.*.<segments>.vN) using reverse-DNS
      style; final segment MUST be .v<digits>; ambiguous verbs (completed, finished,
      updated, changed, processed, handled, status, started, failed) disallowed.
    examples:
    - uk.nhs.notify.ordering.order.read.v1
    $comment: 'NHS naming: lower-dot namespaced; version suffix required (.v<digits>);
      banned tokens anywhere before version: completed, finished, updated, changed,
      processed, handled, status, started, failed.'
  time:
    type: string
    format: date-time
    description: Timestamp when the event occurred (RFC 3339).
    examples:
    - '2025-10-01T10:15:30.000Z'
    $comment: RFC3339 UTC occurred-at (REQUIRED in NHS profile).
  datacontenttype:
    type: string
    const: application/json
    description: Media type for the data field (fixed to application/json).
    examples:
    - application/json
    $comment: Usually application/json.
  dataschema:
    allOf:
    - type: string
      description: URI of a schema that describes the event payload (notify-payload).
      examples:
      - https://nhsdigital.github.io/nhs-notify-standards/cloudevents/nhs-notify-example-event-data.schema.json
      $comment: URI to event payload schema.
    - type: string
      const: https://notify.nhs.uk/cloudevents/schemas/digital-letters/2025-10-draft/data/digital-letters-message-request-skipped-data.schema.json
      description: Canonical URI of the event's data schema.
      examples:
      - digital-letters-message-request-skipped-data.schema.json
  data:
    allOf:
    - type: object
      description: Container object wrapping the structured Notify payload.
      examples:
      - notify-payload:
          notify-data:
            nhsNumber: '9434765919'
          notify-metadata:
            teamResponsible: Team 1
            notifyDomain: Ordering
            version: 1.3.0
      $comment: Domain payload (arbitrary JSON value).
    - $schema: https://json-schema.org/draft/2020-12/schema
      title: MessageRequestSkipped Data
      description: Data payload of the MessageRequestSkipped event
      type: object
      additionalProperties: false
      properties:
        messageReference:
          type: string
          description: Globally unique reference for each message, provided by the
            sender
          examples:
          - 19cd1d01-98c3-4ab8-a7b8-c1adabda7641
          $comment: 'Dereferenced from: ../defs/requests.schema.json#/properties/messageReference'
        senderId:
          type: string
          description: Identifier that the sender provided during onboarding. Provided
            in the body of each FHIR resource submitted by the sender.
          examples:
          - Trust-12345
          $comment: 'Dereferenced from: ../defs/requests.schema.json#/properties/senderId'
      required:
      - messageReference
      - senderId
      $comment: 'Dereferenced from: ../data/digital-letters-message-request-skipped-data.schema.json'
  traceparent:
    type: string
    minLength: 1
    pattern: ^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$
    description: W3C Trace Context traceparent header value.
    examples:
    - 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
    $comment: W3C Trace Context traceparent (required when tracing used).
  tracestate:
    type: string
    description: Optional W3C Trace Context tracestate header value.
    examples:
    - rojo=00f067aa0ba902b7,congo=t61rcWkgMzE
    $comment: W3C Trace Context tracestate (optional).
  partitionkey:
    type: string
    minLength: 1
    maxLength: 64
    pattern: ^[a-z0-9-]+$
    description: Partition / ordering key (lowercase alphanumerics and hyphen, 1-64
      chars).
    examples:
    - customer-920fca11
    $comment: Non-empty partition key for scaling / causal grouping. Must be 1-64
      characters, only lowercase letters, numbers, and hyphen.
  recordedtime:
    type: string
    format: date-time
    description: Timestamp when the event was recorded/persisted (should be >= time).
    examples:
    - '2025-10-01T10:15:30.250Z'
    $comment: Bitemporal created-at; should be >= time.
  sampledrate:
    type: integer
    minimum: 1
    description: 'Sampling factor: number of similar occurrences this event represents.'
    examples:
    - 5
    $comment: Integer > 0 indicating how many similar occurrences this event represents.
  sequence:
    type: string
    pattern: ^\d{20}$
    description: Zero-padded 20 digit numeric sequence (lexicographically sortable).
    examples:
    - '00000000000000000042'
    $comment: Lexicographically comparable ordering string per source. Must be a string
      of exactly 20 digits, left-padded with zeros, representing a 64-bit unsigned
      integer.
  severitytext:
    type: string
    enum:
    - TRACE
    - DEBUG
    - INFO
    - WARN
    - ERROR
    - FATAL
    description: Log severity level name.
    examples:
    - DEBUG
    $comment: Severity text (TRACE, DEBUG, INFO, WARN, ERROR, FATAL, etc.).
  severitynumber:
    type: integer
    minimum: 0
    maximum: 5
    description: Numeric severity (TRACE=0, DEBUG=1, INFO=2, WARN=3, ERROR=4, FATAL=5).
    examples:
    - 1
    $comment: Numeric severity corresponding to severitytext (TRACE=0..FATAL=5).
  dataclassification:
    type: string
    enum:
    - public
    - internal
    - confidential
    - restricted
    description: Data sensitivity classification.
    examples:
    - restricted
    $comment: Data classification e.g. public|internal|confidential|restricted.
  dataregulation:
    type: string
    enum:
    - GDPR
    - HIPAA
    - PCI-DSS
    - ISO-27001
    - NIST-800-53
    - CCPA
    description: Regulatory regime tag applied to this data.
    examples:
    - ISO-27001
    $comment: Regulation tags e.g. GDPR, HIPAA.
  datacategory:
    type: string
    enum:
    - non-sensitive
    - standard
    - sensitive
    - special-category
    description: Data category classification (e.g. standard, special-category).
    examples:
    - sensitive
    $comment: 'Example: special-category (GDPR), phi (HIPAA).'
required:
- specversion
- id
- source
- subject
- type
- time
- recordedtime
- severitynumber
- traceparent
- data
$comment: Flattened (allOf resolved, properties merged with per-property allOf for
  conflicts).