---
openapi: 3.1.0
info:
  title: Gigs Events
  description: Events can describe actions, resource state changes, or specific conditions
    having been met.
  contact:
    name: Gigs Support
    email: support@gigs.com
  version: '2026-01-29'
servers: []
paths: {}
components:
  schemas:
    com.gigs.apiKey.created:
      type: object
      title: com.gigs.apiKey.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: APIKey
          properties:
            object:
              type: string
              const: apiKey
              description: Type of object is always `apiKey`.
            id:
              type: string
              description: Unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            createdAt:
              type: string
              format: date-time
              description: Time when the API key was created.
              examples:
              - '2022-02-14T19:38:34Z'
            expiresAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the API key expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            name:
              type: string
              description: Human readable name describing what the API key is used
                for.
              examples:
              - My first Gigs API integration
            token:
              type: string
              description: The bearer token to be used in HTTP Authorization. The
                full token is only available in the create response. In all other
                responses a redacted token will be returned, as we do not store the
                full token ourselves.
              examples:
              - gpk_2W4IoEFH••••
          required:
          - object
          - id
          - name
          - token
          - createdAt
          - expiresAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.apiKey.created
          description: Type is always `com.gigs.apiKey.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.apiKey.deleted:
      type: object
      title: com.gigs.apiKey.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: APIKey
          properties:
            object:
              type: string
              const: apiKey
              description: Type of object is always `apiKey`.
            id:
              type: string
              description: Unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            createdAt:
              type: string
              format: date-time
              description: Time when the API key was created.
              examples:
              - '2022-02-14T19:38:34Z'
            expiresAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the API key expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            name:
              type: string
              description: Human readable name describing what the API key is used
                for.
              examples:
              - My first Gigs API integration
            token:
              type: string
              description: The bearer token to be used in HTTP Authorization. The
                full token is only available in the create response. In all other
                responses a redacted token will be returned, as we do not store the
                full token ourselves.
              examples:
              - gpk_2W4IoEFH••••
          required:
          - object
          - id
          - name
          - token
          - createdAt
          - expiresAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.apiKey.deleted
          description: Type is always `com.gigs.apiKey.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.addon.archived:
      type: object
      title: com.gigs.addon.archived
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Add-on
          description: Add-ons define features or top-ups that can be used to extend
            the functionality offered to the end user through their subscription's
            plan.
          properties:
            object:
              type: string
              const: addon
              description: Type of object is always `addon`.
            id:
              type: string
              description: Unique identifier for the add-on.
              examples:
              - add_0SNlurA049MEWV4VxLfwJc7PJtHc
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activationTrigger:
              type: string
              enum:
              - creation
              - networkLatch
              - usageStarted
              description: |
                Indicates when a subscription add-on will take effect.

                - `creation`: As soon as it is created. The user does not need to take any further action.
                - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                - `usageStarted`: When the user starts using add-on allowance on their device.
              examples:
              - creation
            allowances:
              type: object
              title: Allowances
              description: The allowances included in the add-on.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              anyOf:
              - type: object
                title: Coverage
                properties:
                  object:
                    type: string
                    const: coverage
                    description: Type of object is always `coverage`.
                  id:
                    type: string
                    description: Unique identifier for the coverage configuration.
                    examples:
                    - de
                  countries:
                    type: array
                    description: List of countries in ISO 3166-1 alpha-2 format covered
                      by this coverage configuration.
                    items:
                      type: string
                      format: ISO 3166-1 alpha-2
                      examples:
                      - DE
                    examples:
                    - - DE
                      - FR
                      - US
                  name:
                    type: string
                    description: A human-readable identifier of the coverage configuration,
                      might not be unique.
                    examples:
                    - Europe
                required:
                - object
                - id
                - countries
                - name
              - type: 'null'
              description: The geographic coverage of the add-on. A value of `null`
                indicates that coverage is not applicable for this add-on.
            createdAt:
              type: string
              format: date-time
              description: Time when the add-on was created .
              examples:
              - '2021-01-21T19:12:28Z'
            description:
              type:
              - string
              - 'null'
              description: The description of the add-on.
              examples:
              - Disable international roaming.
            name:
              type: string
              description: Name for the add-on.
              examples:
              - 1GB Data Top-up
            plans:
              type: array
              description: The plans this add-on is compatible with.
              items:
                type: string
                examples:
                - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            price:
              type: object
              title: Price
              description: The price of the add-on.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this add-on.
              examples:
              - p5
            recurrenceType:
              type: string
              enum:
              - oneTime
              - recurring
              description: The recurrence type the add-on.
              examples:
              - oneTime
            status:
              type: string
              enum:
              - draft
              - available
              - archived
              description: The current status of the add-on.
            type:
              type: string
              enum:
              - topUp
              - other
              description: The type of the add-on.
              examples:
              - topUp
            validity:
              type:
              - object
              - 'null'
              description: |-
                The validity period of the add-on. When the add-on is activated, it will expire after this
                        duration. Not all add-ons have a validity period.
              properties:
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the add-on, either `day` or `month`.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property).
                  minimum: 1
                  examples:
                  - 7
              required:
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `sms`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - activationTrigger
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - name
          - plans
          - price
          - provider
          - recurrenceType
          - sms
          - smsUnit
          - status
          - type
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.addon.archived
          description: Type is always `com.gigs.addon.archived`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.addon.created:
      type: object
      title: com.gigs.addon.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Add-on
          description: Add-ons define features or top-ups that can be used to extend
            the functionality offered to the end user through their subscription's
            plan.
          properties:
            object:
              type: string
              const: addon
              description: Type of object is always `addon`.
            id:
              type: string
              description: Unique identifier for the add-on.
              examples:
              - add_0SNlurA049MEWV4VxLfwJc7PJtHc
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activationTrigger:
              type: string
              enum:
              - creation
              - networkLatch
              - usageStarted
              description: |
                Indicates when a subscription add-on will take effect.

                - `creation`: As soon as it is created. The user does not need to take any further action.
                - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                - `usageStarted`: When the user starts using add-on allowance on their device.
              examples:
              - creation
            allowances:
              type: object
              title: Allowances
              description: The allowances included in the add-on.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              anyOf:
              - type: object
                title: Coverage
                properties:
                  object:
                    type: string
                    const: coverage
                    description: Type of object is always `coverage`.
                  id:
                    type: string
                    description: Unique identifier for the coverage configuration.
                    examples:
                    - de
                  countries:
                    type: array
                    description: List of countries in ISO 3166-1 alpha-2 format covered
                      by this coverage configuration.
                    items:
                      type: string
                      format: ISO 3166-1 alpha-2
                      examples:
                      - DE
                    examples:
                    - - DE
                      - FR
                      - US
                  name:
                    type: string
                    description: A human-readable identifier of the coverage configuration,
                      might not be unique.
                    examples:
                    - Europe
                required:
                - object
                - id
                - countries
                - name
              - type: 'null'
              description: The geographic coverage of the add-on. A value of `null`
                indicates that coverage is not applicable for this add-on.
            createdAt:
              type: string
              format: date-time
              description: Time when the add-on was created .
              examples:
              - '2021-01-21T19:12:28Z'
            description:
              type:
              - string
              - 'null'
              description: The description of the add-on.
              examples:
              - Disable international roaming.
            name:
              type: string
              description: Name for the add-on.
              examples:
              - 1GB Data Top-up
            plans:
              type: array
              description: The plans this add-on is compatible with.
              items:
                type: string
                examples:
                - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            price:
              type: object
              title: Price
              description: The price of the add-on.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this add-on.
              examples:
              - p5
            recurrenceType:
              type: string
              enum:
              - oneTime
              - recurring
              description: The recurrence type the add-on.
              examples:
              - oneTime
            status:
              type: string
              enum:
              - draft
              - available
              - archived
              description: The current status of the add-on.
            type:
              type: string
              enum:
              - topUp
              - other
              description: The type of the add-on.
              examples:
              - topUp
            validity:
              type:
              - object
              - 'null'
              description: |-
                The validity period of the add-on. When the add-on is activated, it will expire after this
                        duration. Not all add-ons have a validity period.
              properties:
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the add-on, either `day` or `month`.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property).
                  minimum: 1
                  examples:
                  - 7
              required:
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `sms`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - activationTrigger
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - name
          - plans
          - price
          - provider
          - recurrenceType
          - sms
          - smsUnit
          - status
          - type
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.addon.created
          description: Type is always `com.gigs.addon.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.addon.deleted:
      type: object
      title: com.gigs.addon.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Add-on
          description: Add-ons define features or top-ups that can be used to extend
            the functionality offered to the end user through their subscription's
            plan.
          properties:
            object:
              type: string
              const: addon
              description: Type of object is always `addon`.
            id:
              type: string
              description: Unique identifier for the add-on.
              examples:
              - add_0SNlurA049MEWV4VxLfwJc7PJtHc
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activationTrigger:
              type: string
              enum:
              - creation
              - networkLatch
              - usageStarted
              description: |
                Indicates when a subscription add-on will take effect.

                - `creation`: As soon as it is created. The user does not need to take any further action.
                - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                - `usageStarted`: When the user starts using add-on allowance on their device.
              examples:
              - creation
            allowances:
              type: object
              title: Allowances
              description: The allowances included in the add-on.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              anyOf:
              - type: object
                title: Coverage
                properties:
                  object:
                    type: string
                    const: coverage
                    description: Type of object is always `coverage`.
                  id:
                    type: string
                    description: Unique identifier for the coverage configuration.
                    examples:
                    - de
                  countries:
                    type: array
                    description: List of countries in ISO 3166-1 alpha-2 format covered
                      by this coverage configuration.
                    items:
                      type: string
                      format: ISO 3166-1 alpha-2
                      examples:
                      - DE
                    examples:
                    - - DE
                      - FR
                      - US
                  name:
                    type: string
                    description: A human-readable identifier of the coverage configuration,
                      might not be unique.
                    examples:
                    - Europe
                required:
                - object
                - id
                - countries
                - name
              - type: 'null'
              description: The geographic coverage of the add-on. A value of `null`
                indicates that coverage is not applicable for this add-on.
            createdAt:
              type: string
              format: date-time
              description: Time when the add-on was created .
              examples:
              - '2021-01-21T19:12:28Z'
            description:
              type:
              - string
              - 'null'
              description: The description of the add-on.
              examples:
              - Disable international roaming.
            name:
              type: string
              description: Name for the add-on.
              examples:
              - 1GB Data Top-up
            plans:
              type: array
              description: The plans this add-on is compatible with.
              items:
                type: string
                examples:
                - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            price:
              type: object
              title: Price
              description: The price of the add-on.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this add-on.
              examples:
              - p5
            recurrenceType:
              type: string
              enum:
              - oneTime
              - recurring
              description: The recurrence type the add-on.
              examples:
              - oneTime
            status:
              type: string
              enum:
              - draft
              - available
              - archived
              description: The current status of the add-on.
            type:
              type: string
              enum:
              - topUp
              - other
              description: The type of the add-on.
              examples:
              - topUp
            validity:
              type:
              - object
              - 'null'
              description: |-
                The validity period of the add-on. When the add-on is activated, it will expire after this
                        duration. Not all add-ons have a validity period.
              properties:
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the add-on, either `day` or `month`.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property).
                  minimum: 1
                  examples:
                  - 7
              required:
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `sms`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - activationTrigger
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - name
          - plans
          - price
          - provider
          - recurrenceType
          - sms
          - smsUnit
          - status
          - type
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.addon.deleted
          description: Type is always `com.gigs.addon.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.addon.published:
      type: object
      title: com.gigs.addon.published
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Add-on
          description: Add-ons define features or top-ups that can be used to extend
            the functionality offered to the end user through their subscription's
            plan.
          properties:
            object:
              type: string
              const: addon
              description: Type of object is always `addon`.
            id:
              type: string
              description: Unique identifier for the add-on.
              examples:
              - add_0SNlurA049MEWV4VxLfwJc7PJtHc
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activationTrigger:
              type: string
              enum:
              - creation
              - networkLatch
              - usageStarted
              description: |
                Indicates when a subscription add-on will take effect.

                - `creation`: As soon as it is created. The user does not need to take any further action.
                - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                - `usageStarted`: When the user starts using add-on allowance on their device.
              examples:
              - creation
            allowances:
              type: object
              title: Allowances
              description: The allowances included in the add-on.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              anyOf:
              - type: object
                title: Coverage
                properties:
                  object:
                    type: string
                    const: coverage
                    description: Type of object is always `coverage`.
                  id:
                    type: string
                    description: Unique identifier for the coverage configuration.
                    examples:
                    - de
                  countries:
                    type: array
                    description: List of countries in ISO 3166-1 alpha-2 format covered
                      by this coverage configuration.
                    items:
                      type: string
                      format: ISO 3166-1 alpha-2
                      examples:
                      - DE
                    examples:
                    - - DE
                      - FR
                      - US
                  name:
                    type: string
                    description: A human-readable identifier of the coverage configuration,
                      might not be unique.
                    examples:
                    - Europe
                required:
                - object
                - id
                - countries
                - name
              - type: 'null'
              description: The geographic coverage of the add-on. A value of `null`
                indicates that coverage is not applicable for this add-on.
            createdAt:
              type: string
              format: date-time
              description: Time when the add-on was created .
              examples:
              - '2021-01-21T19:12:28Z'
            description:
              type:
              - string
              - 'null'
              description: The description of the add-on.
              examples:
              - Disable international roaming.
            name:
              type: string
              description: Name for the add-on.
              examples:
              - 1GB Data Top-up
            plans:
              type: array
              description: The plans this add-on is compatible with.
              items:
                type: string
                examples:
                - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            price:
              type: object
              title: Price
              description: The price of the add-on.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this add-on.
              examples:
              - p5
            recurrenceType:
              type: string
              enum:
              - oneTime
              - recurring
              description: The recurrence type the add-on.
              examples:
              - oneTime
            status:
              type: string
              enum:
              - draft
              - available
              - archived
              description: The current status of the add-on.
            type:
              type: string
              enum:
              - topUp
              - other
              description: The type of the add-on.
              examples:
              - topUp
            validity:
              type:
              - object
              - 'null'
              description: |-
                The validity period of the add-on. When the add-on is activated, it will expire after this
                        duration. Not all add-ons have a validity period.
              properties:
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the add-on, either `day` or `month`.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property).
                  minimum: 1
                  examples:
                  - 7
              required:
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `sms`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - activationTrigger
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - name
          - plans
          - price
          - provider
          - recurrenceType
          - sms
          - smsUnit
          - status
          - type
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.addon.published
          description: Type is always `com.gigs.addon.published`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.addon.updated:
      type: object
      title: com.gigs.addon.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Add-on
          description: Add-ons define features or top-ups that can be used to extend
            the functionality offered to the end user through their subscription's
            plan.
          properties:
            object:
              type: string
              const: addon
              description: Type of object is always `addon`.
            id:
              type: string
              description: Unique identifier for the add-on.
              examples:
              - add_0SNlurA049MEWV4VxLfwJc7PJtHc
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activationTrigger:
              type: string
              enum:
              - creation
              - networkLatch
              - usageStarted
              description: |
                Indicates when a subscription add-on will take effect.

                - `creation`: As soon as it is created. The user does not need to take any further action.
                - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                - `usageStarted`: When the user starts using add-on allowance on their device.
              examples:
              - creation
            allowances:
              type: object
              title: Allowances
              description: The allowances included in the add-on.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              anyOf:
              - type: object
                title: Coverage
                properties:
                  object:
                    type: string
                    const: coverage
                    description: Type of object is always `coverage`.
                  id:
                    type: string
                    description: Unique identifier for the coverage configuration.
                    examples:
                    - de
                  countries:
                    type: array
                    description: List of countries in ISO 3166-1 alpha-2 format covered
                      by this coverage configuration.
                    items:
                      type: string
                      format: ISO 3166-1 alpha-2
                      examples:
                      - DE
                    examples:
                    - - DE
                      - FR
                      - US
                  name:
                    type: string
                    description: A human-readable identifier of the coverage configuration,
                      might not be unique.
                    examples:
                    - Europe
                required:
                - object
                - id
                - countries
                - name
              - type: 'null'
              description: The geographic coverage of the add-on. A value of `null`
                indicates that coverage is not applicable for this add-on.
            createdAt:
              type: string
              format: date-time
              description: Time when the add-on was created .
              examples:
              - '2021-01-21T19:12:28Z'
            description:
              type:
              - string
              - 'null'
              description: The description of the add-on.
              examples:
              - Disable international roaming.
            name:
              type: string
              description: Name for the add-on.
              examples:
              - 1GB Data Top-up
            plans:
              type: array
              description: The plans this add-on is compatible with.
              items:
                type: string
                examples:
                - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            price:
              type: object
              title: Price
              description: The price of the add-on.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this add-on.
              examples:
              - p5
            recurrenceType:
              type: string
              enum:
              - oneTime
              - recurring
              description: The recurrence type the add-on.
              examples:
              - oneTime
            status:
              type: string
              enum:
              - draft
              - available
              - archived
              description: The current status of the add-on.
            type:
              type: string
              enum:
              - topUp
              - other
              description: The type of the add-on.
              examples:
              - topUp
            validity:
              type:
              - object
              - 'null'
              description: |-
                The validity period of the add-on. When the add-on is activated, it will expire after this
                        duration. Not all add-ons have a validity period.
              properties:
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the add-on, either `day` or `month`.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property).
                  minimum: 1
                  examples:
                  - 7
              required:
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `sms`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - activationTrigger
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - name
          - plans
          - price
          - provider
          - recurrenceType
          - sms
          - smsUnit
          - status
          - type
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.addon.updated
          description: Type is always `com.gigs.addon.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.connectSession.created:
      type: object
      title: com.gigs.connectSession.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: ConnectSession
          properties:
            object:
              type: string
              const: connectSession
              description: Type of object is always `connectSession`.
            id:
              type: string
              description: Unique identifier for the Connect Session.
              examples:
              - csn_0SNlurA049MEWV1GWxpaE5D0t2D6
            appearance:
              type: object
              title: Appearance
              properties:
                theme:
                  type: string
                  enum:
                  - light
                  - dark
                  description: The theme setting that will influence the visual appearance
                    during the Connect Session.
                  examples:
                  - light
              required: []
            callbackUrl:
              type:
              - string
              - 'null'
              description: The URL to which the user will be redirected after the
                Connect Session is completed.
              examples:
              - https://example.com
            intent:
              type: object
              title: Intent
              properties:
                cancelSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to cancel.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                changeSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to modify.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                checkoutAddon:
                  type: object
                  properties:
                    addons:
                      type: array
                      description: List of unique identifiers for the add-ons to subscribe.
                      items:
                        type: string
                        examples:
                        - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to modify.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - addons
                  - subscription
                checkoutNewSubscription:
                  type: object
                  properties:
                    device:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the existing device to
                        use.
                      examples:
                      - dev_0SNlurA049MEWV55CrA9qMvI2FVJ
                    plan:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the plan to subscribe.
                      examples:
                      - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                    sim:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the SIM to use.
                      examples:
                      - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                    imei:
                      type:
                      - string
                      - 'null'
                      pattern: "^[0-9]{15,16}$"
                      description: The IMEI (international mobile equipment identity)
                        of the corresponding device.
                      examples:
                      - '492388841798923'
                completePorting:
                  type: object
                  properties:
                    behavior:
                      type: object
                      title: 'Complete Porting: Behavior'
                      description: Behavior flags that customize the Complete Porting
                        flow in Connect.
                      properties:
                        hideIntroPage:
                          type: boolean
                          description: When true, skips the intro screen in the Complete
                            Porting intent and navigates users directly to the first
                            required step.
                          examples:
                          - true
                        hideOutroPage:
                          type: boolean
                          description: When true, hides the outro screen after the
                            Complete Porting intent is fullfilled and returns users
                            immediately to the `callbackUrl` (if provided).
                          examples:
                          - true
                      required: []
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to complete
                        porting.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - behavior
                  - subscription
                confirmPayment:
                  type: object
                  properties:
                    payment:
                      type: string
                      description: The unique identifier for the payment to be confirmed.
                      examples:
                      - pay_0SNlurA049MEWV2HRA0slWFuS8DV
                  required:
                  - payment
                resumeSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to resume.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                type:
                  type: string
                  enum:
                  - cancelSubscription
                  - changeSubscription
                  - checkoutAddon
                  - checkoutNewSubscription
                  - completePorting
                  - confirmPayment
                  - resumeSubscription
                  - updatePaymentMethod
                  - updateUserAddress
                  - updateUserFullName
                  - viewEsimInstallation
                  - viewSubscription
                  - viewSubscriptions
                  description: The type of intent.
                viewEsimInstallation:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to view
                        eSIM installation.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                viewSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to view.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
              required:
              - type
            url:
              type:
              - string
              - 'null'
              description: The session URL. Redirect your users to this URL to take
                them to Connect. It is only present on all create responses or in
                the update responses that associate the session with a user. It should
                not be stored, logged or exposed to anyone other than the user.
              examples:
              - https://connect.gigs.com/checkout/entry?session=csn_0SNlurA049MEWV1GWxpaE5D0t2D6&token=lzODbEyaUQjVRAmalD4pdaq5Nkn1Lw0qTL6Rdsh7PwLVES6N7ImWxnCYbJA99AXp
            user:
              type:
              - string
              - 'null'
              description: The unique identifier of the user that the session is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - appearance
          - callbackUrl
          - intent
          - url
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.connectSession.created
          description: Type is always `com.gigs.connectSession.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.connectSession.updated:
      type: object
      title: com.gigs.connectSession.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: ConnectSession
          properties:
            object:
              type: string
              const: connectSession
              description: Type of object is always `connectSession`.
            id:
              type: string
              description: Unique identifier for the Connect Session.
              examples:
              - csn_0SNlurA049MEWV1GWxpaE5D0t2D6
            appearance:
              type: object
              title: Appearance
              properties:
                theme:
                  type: string
                  enum:
                  - light
                  - dark
                  description: The theme setting that will influence the visual appearance
                    during the Connect Session.
                  examples:
                  - light
              required: []
            callbackUrl:
              type:
              - string
              - 'null'
              description: The URL to which the user will be redirected after the
                Connect Session is completed.
              examples:
              - https://example.com
            intent:
              type: object
              title: Intent
              properties:
                cancelSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to cancel.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                changeSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to modify.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                checkoutAddon:
                  type: object
                  properties:
                    addons:
                      type: array
                      description: List of unique identifiers for the add-ons to subscribe.
                      items:
                        type: string
                        examples:
                        - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to modify.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - addons
                  - subscription
                checkoutNewSubscription:
                  type: object
                  properties:
                    device:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the existing device to
                        use.
                      examples:
                      - dev_0SNlurA049MEWV55CrA9qMvI2FVJ
                    plan:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the plan to subscribe.
                      examples:
                      - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                    sim:
                      type:
                      - string
                      - 'null'
                      description: The unique identifier for the SIM to use.
                      examples:
                      - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                    imei:
                      type:
                      - string
                      - 'null'
                      pattern: "^[0-9]{15,16}$"
                      description: The IMEI (international mobile equipment identity)
                        of the corresponding device.
                      examples:
                      - '492388841798923'
                completePorting:
                  type: object
                  properties:
                    behavior:
                      type: object
                      title: 'Complete Porting: Behavior'
                      description: Behavior flags that customize the Complete Porting
                        flow in Connect.
                      properties:
                        hideIntroPage:
                          type: boolean
                          description: When true, skips the intro screen in the Complete
                            Porting intent and navigates users directly to the first
                            required step.
                          examples:
                          - true
                        hideOutroPage:
                          type: boolean
                          description: When true, hides the outro screen after the
                            Complete Porting intent is fullfilled and returns users
                            immediately to the `callbackUrl` (if provided).
                          examples:
                          - true
                      required: []
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to complete
                        porting.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - behavior
                  - subscription
                confirmPayment:
                  type: object
                  properties:
                    payment:
                      type: string
                      description: The unique identifier for the payment to be confirmed.
                      examples:
                      - pay_0SNlurA049MEWV2HRA0slWFuS8DV
                  required:
                  - payment
                resumeSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to resume.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                type:
                  type: string
                  enum:
                  - cancelSubscription
                  - changeSubscription
                  - checkoutAddon
                  - checkoutNewSubscription
                  - completePorting
                  - confirmPayment
                  - resumeSubscription
                  - updatePaymentMethod
                  - updateUserAddress
                  - updateUserFullName
                  - viewEsimInstallation
                  - viewSubscription
                  - viewSubscriptions
                  description: The type of intent.
                viewEsimInstallation:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to view
                        eSIM installation.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
                viewSubscription:
                  type: object
                  properties:
                    subscription:
                      type: string
                      description: The unique identifier for the subscription to view.
                      examples:
                      - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  required:
                  - subscription
              required:
              - type
            url:
              type:
              - string
              - 'null'
              description: The session URL. Redirect your users to this URL to take
                them to Connect. It is only present on all create responses or in
                the update responses that associate the session with a user. It should
                not be stored, logged or exposed to anyone other than the user.
              examples:
              - https://connect.gigs.com/checkout/entry?session=csn_0SNlurA049MEWV1GWxpaE5D0t2D6&token=lzODbEyaUQjVRAmalD4pdaq5Nkn1Lw0qTL6Rdsh7PwLVES6N7ImWxnCYbJA99AXp
            user:
              type:
              - string
              - 'null'
              description: The unique identifier of the user that the session is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - appearance
          - callbackUrl
          - intent
          - url
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.connectSession.updated
          description: Type is always `com.gigs.connectSession.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.creditNote.created:
      type: object
      title: com.gigs.creditNote.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: CreditNote
          description: Credit notes adjust an invoice amount after it has been finalized.
            Used to issue credit or refunds.
          properties:
            object:
              type: string
              const: creditNote
              description: Type of object is always `creditNote`.
            id:
              type: string
              description: Unique identifier for the credit note.
              examples:
              - crn_0SNlurA049MEWV49X25tqzNV2jji
            createdAt:
              type: string
              format: date-time
              description: Time when the credit note was created.
              examples:
              - '2024-06-14T19:38:34Z'
            creditTo:
              type: string
              enum:
              - outOfBand
              - userBalance
              description: |
                Specifies where the credit amount should be credited to. It can have one of the following values:

                  - `outOfBand`: The amount should be handled outside the system by the customer.
                  - `userBalance`: The amount should be added to the user balance at Gigs.
            fees:
              type: array
              description: The credited fees.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the credit note PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/creditNotes/crn_0SNlurA049MEWV49X25tqzNV2jji.pdf?signature=abc123
            invoice:
              type: string
              description: The unique identifier for the invoice that the credit note
                applies to.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            lineItems:
              type: array
              description: The line items for the credit note.
              items:
                type: object
                title: CreditNoteLineItem
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount credited for this line item before taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  invoiceLineItem:
                    type: string
                    description: The unique identifier for the invoice line item that
                      the line item applies to.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  tax:
                    type: object
                    title: Price
                    description: The sum of the amount in taxes credited for this
                      line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes credited for this line item.
                    items:
                      type: object
                      properties:
                        amount:
                          type: object
                          title: Price
                          description: The amount credited for this tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        invoiceTax:
                          type: string
                          description: Unique identifier of the invoice's line item
                            tax being credited.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                      required:
                      - amount
                      - invoiceTax
                  total:
                    type: object
                    title: Price
                    description: The total amount credited for this line item after
                      taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - amount
                - invoiceLineItem
                - tax
                - taxes
                - total
            status:
              type: string
              enum:
              - issued
              - voided
              description: |
                The status of the credit note. It can have one of the following values:

                  - `issued`: The credit note was issued.
                  - `voided`: The credit note was voided and no longer has any effect.
            subtotal:
              type: object
              title: Price
              description: The total amount credited before any taxes or fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The sum of the amounts in taxes credited for each line
                item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            total:
              type: object
              title: Price
              description: The total amount credited after taxes and fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voidedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the credit note was voided.
              examples:
              - '2024-06-14T19:38:34Z'
          required:
          - object
          - id
          - creditTo
          - fees
          - fileUrl
          - invoice
          - lineItems
          - status
          - subtotal
          - tax
          - total
          - createdAt
          - voidedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.creditNote.created
          description: Type is always `com.gigs.creditNote.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.creditNote.updated:
      type: object
      title: com.gigs.creditNote.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: CreditNote
          description: Credit notes adjust an invoice amount after it has been finalized.
            Used to issue credit or refunds.
          properties:
            object:
              type: string
              const: creditNote
              description: Type of object is always `creditNote`.
            id:
              type: string
              description: Unique identifier for the credit note.
              examples:
              - crn_0SNlurA049MEWV49X25tqzNV2jji
            createdAt:
              type: string
              format: date-time
              description: Time when the credit note was created.
              examples:
              - '2024-06-14T19:38:34Z'
            creditTo:
              type: string
              enum:
              - outOfBand
              - userBalance
              description: |
                Specifies where the credit amount should be credited to. It can have one of the following values:

                  - `outOfBand`: The amount should be handled outside the system by the customer.
                  - `userBalance`: The amount should be added to the user balance at Gigs.
            fees:
              type: array
              description: The credited fees.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the credit note PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/creditNotes/crn_0SNlurA049MEWV49X25tqzNV2jji.pdf?signature=abc123
            invoice:
              type: string
              description: The unique identifier for the invoice that the credit note
                applies to.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            lineItems:
              type: array
              description: The line items for the credit note.
              items:
                type: object
                title: CreditNoteLineItem
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount credited for this line item before taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  invoiceLineItem:
                    type: string
                    description: The unique identifier for the invoice line item that
                      the line item applies to.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  tax:
                    type: object
                    title: Price
                    description: The sum of the amount in taxes credited for this
                      line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes credited for this line item.
                    items:
                      type: object
                      properties:
                        amount:
                          type: object
                          title: Price
                          description: The amount credited for this tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        invoiceTax:
                          type: string
                          description: Unique identifier of the invoice's line item
                            tax being credited.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                      required:
                      - amount
                      - invoiceTax
                  total:
                    type: object
                    title: Price
                    description: The total amount credited for this line item after
                      taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - amount
                - invoiceLineItem
                - tax
                - taxes
                - total
            status:
              type: string
              enum:
              - issued
              - voided
              description: |
                The status of the credit note. It can have one of the following values:

                  - `issued`: The credit note was issued.
                  - `voided`: The credit note was voided and no longer has any effect.
            subtotal:
              type: object
              title: Price
              description: The total amount credited before any taxes or fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The sum of the amounts in taxes credited for each line
                item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            total:
              type: object
              title: Price
              description: The total amount credited after taxes and fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voidedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the credit note was voided.
              examples:
              - '2024-06-14T19:38:34Z'
          required:
          - object
          - id
          - creditTo
          - fees
          - fileUrl
          - invoice
          - lineItems
          - status
          - subtotal
          - tax
          - total
          - createdAt
          - voidedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.creditNote.updated
          description: Type is always `com.gigs.creditNote.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.creditNote.voided:
      type: object
      title: com.gigs.creditNote.voided
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: CreditNote
          description: Credit notes adjust an invoice amount after it has been finalized.
            Used to issue credit or refunds.
          properties:
            object:
              type: string
              const: creditNote
              description: Type of object is always `creditNote`.
            id:
              type: string
              description: Unique identifier for the credit note.
              examples:
              - crn_0SNlurA049MEWV49X25tqzNV2jji
            createdAt:
              type: string
              format: date-time
              description: Time when the credit note was created.
              examples:
              - '2024-06-14T19:38:34Z'
            creditTo:
              type: string
              enum:
              - outOfBand
              - userBalance
              description: |
                Specifies where the credit amount should be credited to. It can have one of the following values:

                  - `outOfBand`: The amount should be handled outside the system by the customer.
                  - `userBalance`: The amount should be added to the user balance at Gigs.
            fees:
              type: array
              description: The credited fees.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the credit note PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/creditNotes/crn_0SNlurA049MEWV49X25tqzNV2jji.pdf?signature=abc123
            invoice:
              type: string
              description: The unique identifier for the invoice that the credit note
                applies to.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            lineItems:
              type: array
              description: The line items for the credit note.
              items:
                type: object
                title: CreditNoteLineItem
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount credited for this line item before taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  invoiceLineItem:
                    type: string
                    description: The unique identifier for the invoice line item that
                      the line item applies to.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  tax:
                    type: object
                    title: Price
                    description: The sum of the amount in taxes credited for this
                      line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes credited for this line item.
                    items:
                      type: object
                      properties:
                        amount:
                          type: object
                          title: Price
                          description: The amount credited for this tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        invoiceTax:
                          type: string
                          description: Unique identifier of the invoice's line item
                            tax being credited.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                      required:
                      - amount
                      - invoiceTax
                  total:
                    type: object
                    title: Price
                    description: The total amount credited for this line item after
                      taxes.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - amount
                - invoiceLineItem
                - tax
                - taxes
                - total
            status:
              type: string
              enum:
              - issued
              - voided
              description: |
                The status of the credit note. It can have one of the following values:

                  - `issued`: The credit note was issued.
                  - `voided`: The credit note was voided and no longer has any effect.
            subtotal:
              type: object
              title: Price
              description: The total amount credited before any taxes or fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The sum of the amounts in taxes credited for each line
                item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            total:
              type: object
              title: Price
              description: The total amount credited after taxes and fees.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voidedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the credit note was voided.
              examples:
              - '2024-06-14T19:38:34Z'
          required:
          - object
          - id
          - creditTo
          - fees
          - fileUrl
          - invoice
          - lineItems
          - status
          - subtotal
          - tax
          - total
          - createdAt
          - voidedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.creditNote.voided
          description: Type is always `com.gigs.creditNote.voided`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.device.created:
      type: object
      title: com.gigs.device.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Device
          description: Devices are the phones or smartwatches that will be tied to
            a user’s plan.
          properties:
            object:
              type: string
              const: device
              description: Type of object is always `device`.
            id:
              type: string
              description: Unique identifier for the device.
              examples:
              - dev_0SNlurA049MEWV55CrA9qMvI2FVJ
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the device was created.
              examples:
              - '2021-02-14T19:38:34Z'
            imei:
              type:
              - string
              - 'null'
              pattern: "^[0-9]{15,16}$"
              description: The IMEI (international mobile equipment identity) of the
                device if provided.
              examples:
              - '492388841798923'
            model:
              anyOf:
              - type: object
                title: DeviceModel
                properties:
                  object:
                    type: string
                    const: deviceModel
                    description: Type of object is always `deviceModel`.
                  id:
                    type: string
                    description: Unique identifier for the deviceModel.
                    examples:
                    - dmd_0SNlurA04OUskUGfGAn3Rh
                  brand:
                    type: string
                    description: The brand of the device model.
                    examples:
                    - Apple
                  name:
                    type: string
                    description: The device model's name.
                    examples:
                    - iPhone 12 Pro
                  simTypes:
                    type: array
                    description: List of SIM types supported by this device model.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  type:
                    type: string
                    enum:
                    - car
                    - iot
                    - laptop
                    - router
                    - smartphone
                    - feature-phone
                    - smartwatch
                    - tablet
                    - wearable
                    - other
                    description: The type of the device model.
                    examples:
                    - smartphone
                required:
                - object
                - id
                - brand
                - name
                - simTypes
                - type
              - type: 'null'
            name:
              type:
              - string
              - 'null'
              description: An optional custom name for the device.
              examples:
              - Anna's iPhone 12 Pro
            sims:
              type: array
              description: List of SIMs added to this device.
              items:
                type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
            user:
              anyOf:
              - type: object
                title: User
                description: Users are end consumers of subscriptions. Users can have
                  multiple devices, SIMs, and subscriptions.
                properties:
                  object:
                    type: string
                    const: user
                    description: Type of object is always `user`.
                  id:
                    type: string
                    description: Unique identifier for the user.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the user.
                    examples:
                    - '2017-07-21'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the user was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  email:
                    type: string
                    format: email
                    description: The primary email address of the user. Must be unique
                      across all users.
                    examples:
                    - jerry@example.com
                  emailVerified:
                    type: boolean
                    description: Whether the user's primary email address is verified
                      or not.
                    examples:
                    - true
                  fullName:
                    type:
                    - string
                    - 'null'
                    description: The user's full name. Required for some Plans.
                    examples:
                    - Jerry Seinfeld
                  preferredLocale:
                    type: string
                    description: The user's locale preference represented as an [IETF
                      language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                    examples:
                    - en-US
                  status:
                    type: string
                    enum:
                    - active
                    - blocked
                    - deleted
                    description: The current status of the user.
                required:
                - object
                - id
                - metadata
                - birthday
                - email
                - emailVerified
                - fullName
                - preferredLocale
                - createdAt
                - status
              - type: 'null'
          required:
          - object
          - id
          - metadata
          - imei
          - model
          - name
          - sims
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.device.created
          description: Type is always `com.gigs.device.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.device.deleted:
      type: object
      title: com.gigs.device.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Device
          description: Devices are the phones or smartwatches that will be tied to
            a user’s plan.
          properties:
            object:
              type: string
              const: device
              description: Type of object is always `device`.
            id:
              type: string
              description: Unique identifier for the device.
              examples:
              - dev_0SNlurA049MEWV55CrA9qMvI2FVJ
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the device was created.
              examples:
              - '2021-02-14T19:38:34Z'
            imei:
              type:
              - string
              - 'null'
              pattern: "^[0-9]{15,16}$"
              description: The IMEI (international mobile equipment identity) of the
                device if provided.
              examples:
              - '492388841798923'
            model:
              anyOf:
              - type: object
                title: DeviceModel
                properties:
                  object:
                    type: string
                    const: deviceModel
                    description: Type of object is always `deviceModel`.
                  id:
                    type: string
                    description: Unique identifier for the deviceModel.
                    examples:
                    - dmd_0SNlurA04OUskUGfGAn3Rh
                  brand:
                    type: string
                    description: The brand of the device model.
                    examples:
                    - Apple
                  name:
                    type: string
                    description: The device model's name.
                    examples:
                    - iPhone 12 Pro
                  simTypes:
                    type: array
                    description: List of SIM types supported by this device model.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  type:
                    type: string
                    enum:
                    - car
                    - iot
                    - laptop
                    - router
                    - smartphone
                    - feature-phone
                    - smartwatch
                    - tablet
                    - wearable
                    - other
                    description: The type of the device model.
                    examples:
                    - smartphone
                required:
                - object
                - id
                - brand
                - name
                - simTypes
                - type
              - type: 'null'
            name:
              type:
              - string
              - 'null'
              description: An optional custom name for the device.
              examples:
              - Anna's iPhone 12 Pro
            sims:
              type: array
              description: List of SIMs added to this device.
              items:
                type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
            user:
              anyOf:
              - type: object
                title: User
                description: Users are end consumers of subscriptions. Users can have
                  multiple devices, SIMs, and subscriptions.
                properties:
                  object:
                    type: string
                    const: user
                    description: Type of object is always `user`.
                  id:
                    type: string
                    description: Unique identifier for the user.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the user.
                    examples:
                    - '2017-07-21'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the user was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  email:
                    type: string
                    format: email
                    description: The primary email address of the user. Must be unique
                      across all users.
                    examples:
                    - jerry@example.com
                  emailVerified:
                    type: boolean
                    description: Whether the user's primary email address is verified
                      or not.
                    examples:
                    - true
                  fullName:
                    type:
                    - string
                    - 'null'
                    description: The user's full name. Required for some Plans.
                    examples:
                    - Jerry Seinfeld
                  preferredLocale:
                    type: string
                    description: The user's locale preference represented as an [IETF
                      language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                    examples:
                    - en-US
                  status:
                    type: string
                    enum:
                    - active
                    - blocked
                    - deleted
                    description: The current status of the user.
                required:
                - object
                - id
                - metadata
                - birthday
                - email
                - emailVerified
                - fullName
                - preferredLocale
                - createdAt
                - status
              - type: 'null'
          required:
          - object
          - id
          - metadata
          - imei
          - model
          - name
          - sims
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.device.deleted
          description: Type is always `com.gigs.device.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.device.updated:
      type: object
      title: com.gigs.device.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Device
          description: Devices are the phones or smartwatches that will be tied to
            a user’s plan.
          properties:
            object:
              type: string
              const: device
              description: Type of object is always `device`.
            id:
              type: string
              description: Unique identifier for the device.
              examples:
              - dev_0SNlurA049MEWV55CrA9qMvI2FVJ
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the device was created.
              examples:
              - '2021-02-14T19:38:34Z'
            imei:
              type:
              - string
              - 'null'
              pattern: "^[0-9]{15,16}$"
              description: The IMEI (international mobile equipment identity) of the
                device if provided.
              examples:
              - '492388841798923'
            model:
              anyOf:
              - type: object
                title: DeviceModel
                properties:
                  object:
                    type: string
                    const: deviceModel
                    description: Type of object is always `deviceModel`.
                  id:
                    type: string
                    description: Unique identifier for the deviceModel.
                    examples:
                    - dmd_0SNlurA04OUskUGfGAn3Rh
                  brand:
                    type: string
                    description: The brand of the device model.
                    examples:
                    - Apple
                  name:
                    type: string
                    description: The device model's name.
                    examples:
                    - iPhone 12 Pro
                  simTypes:
                    type: array
                    description: List of SIM types supported by this device model.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  type:
                    type: string
                    enum:
                    - car
                    - iot
                    - laptop
                    - router
                    - smartphone
                    - feature-phone
                    - smartwatch
                    - tablet
                    - wearable
                    - other
                    description: The type of the device model.
                    examples:
                    - smartphone
                required:
                - object
                - id
                - brand
                - name
                - simTypes
                - type
              - type: 'null'
            name:
              type:
              - string
              - 'null'
              description: An optional custom name for the device.
              examples:
              - Anna's iPhone 12 Pro
            sims:
              type: array
              description: List of SIMs added to this device.
              items:
                type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
            user:
              anyOf:
              - type: object
                title: User
                description: Users are end consumers of subscriptions. Users can have
                  multiple devices, SIMs, and subscriptions.
                properties:
                  object:
                    type: string
                    const: user
                    description: Type of object is always `user`.
                  id:
                    type: string
                    description: Unique identifier for the user.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the user.
                    examples:
                    - '2017-07-21'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the user was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  email:
                    type: string
                    format: email
                    description: The primary email address of the user. Must be unique
                      across all users.
                    examples:
                    - jerry@example.com
                  emailVerified:
                    type: boolean
                    description: Whether the user's primary email address is verified
                      or not.
                    examples:
                    - true
                  fullName:
                    type:
                    - string
                    - 'null'
                    description: The user's full name. Required for some Plans.
                    examples:
                    - Jerry Seinfeld
                  preferredLocale:
                    type: string
                    description: The user's locale preference represented as an [IETF
                      language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                    examples:
                    - en-US
                  status:
                    type: string
                    enum:
                    - active
                    - blocked
                    - deleted
                    description: The current status of the user.
                required:
                - object
                - id
                - metadata
                - birthday
                - email
                - emailVerified
                - fullName
                - preferredLocale
                - createdAt
                - status
              - type: 'null'
          required:
          - object
          - id
          - metadata
          - imei
          - model
          - name
          - sims
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.device.updated
          description: Type is always `com.gigs.device.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.eSimProfile.deleted:
      type: object
      title: com.gigs.eSimProfile.deleted
      description: Fires when the eSIM profile is deleted. Only available for providers
        `p3`, `p14` and `p15`.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: EsimProfile
          properties:
            object:
              type: string
              const: eSimProfile
              description: Type of object is always `eSimProfile`.
            sim:
              type: object
              title: Sim
              description: 'A SIM is a unique card that identifies itself to a specific
                mobile network and provides voice, text, and data connectivity to
                a user’s device. There are two types of available SIMs: eSIM and pSIM.
                eSIMs can be activated and installed instantly on any eSIM compatible
                device, pSIMs (physical SIMs) must be provided to the user or installed
                into the device beforehand.'
              properties:
                object:
                  type: string
                  const: sim
                  description: Type of object is always `sim`.
                id:
                  type: string
                  description: Unique identifier for the SIM.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the SIM was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                iccid:
                  type: string
                  pattern: "^[0-9]{19,20}$"
                  description: The ICCID (integrated circuit card identifier) associated
                    with the SIM.
                  examples:
                  - '89883070000007537119'
                provider:
                  type: string
                  description: The ID of the network provider of the SIM.
                  examples:
                  - p9
                status:
                  type: string
                  enum:
                  - inactive
                  - active
                  - retired
                  description: The status of the SIM. Can be `active` or `inactive`.
                type:
                  type: string
                  enum:
                  - eSIM
                  - pSIM
                  description: The type of the SIM. Can be `eSIM` or `pSIM`.
              required:
              - object
              - id
              - metadata
              - iccid
              - provider
              - status
              - type
              - createdAt
            status:
              type: string
              enum:
              - deleted
              - disabled
              - enabled
              - installed
              - unknown
              description: The current status of the eSimProfile.
            updatedAt:
              type: string
              format: date-time
              description: Time at which the status was last updated.
              examples:
              - '2024-03-13T15:36:01Z'
          required:
          - object
          - sim
          - status
          - updatedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.eSimProfile.deleted
          description: Type is always `com.gigs.eSimProfile.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.eSimProfile.disabled:
      type: object
      title: com.gigs.eSimProfile.disabled
      description: |
        Fires when the eSIM profile is disabled. Note that if the eSIM being
        disabled results in the device losing connectivity, this event will be
        delayed until connectivity is regained.

        Only available for providers `p3`, `p14` and `p15`.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: EsimProfile
          properties:
            object:
              type: string
              const: eSimProfile
              description: Type of object is always `eSimProfile`.
            sim:
              type: object
              title: Sim
              description: 'A SIM is a unique card that identifies itself to a specific
                mobile network and provides voice, text, and data connectivity to
                a user’s device. There are two types of available SIMs: eSIM and pSIM.
                eSIMs can be activated and installed instantly on any eSIM compatible
                device, pSIMs (physical SIMs) must be provided to the user or installed
                into the device beforehand.'
              properties:
                object:
                  type: string
                  const: sim
                  description: Type of object is always `sim`.
                id:
                  type: string
                  description: Unique identifier for the SIM.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the SIM was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                iccid:
                  type: string
                  pattern: "^[0-9]{19,20}$"
                  description: The ICCID (integrated circuit card identifier) associated
                    with the SIM.
                  examples:
                  - '89883070000007537119'
                provider:
                  type: string
                  description: The ID of the network provider of the SIM.
                  examples:
                  - p9
                status:
                  type: string
                  enum:
                  - inactive
                  - active
                  - retired
                  description: The status of the SIM. Can be `active` or `inactive`.
                type:
                  type: string
                  enum:
                  - eSIM
                  - pSIM
                  description: The type of the SIM. Can be `eSIM` or `pSIM`.
              required:
              - object
              - id
              - metadata
              - iccid
              - provider
              - status
              - type
              - createdAt
            status:
              type: string
              enum:
              - deleted
              - disabled
              - enabled
              - installed
              - unknown
              description: The current status of the eSimProfile.
            updatedAt:
              type: string
              format: date-time
              description: Time at which the status was last updated.
              examples:
              - '2024-03-13T15:36:01Z'
          required:
          - object
          - sim
          - status
          - updatedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.eSimProfile.disabled
          description: Type is always `com.gigs.eSimProfile.disabled`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.eSimProfile.enabled:
      type: object
      title: com.gigs.eSimProfile.enabled
      description: Fires when the eSIM profile is enabled. Only available for providers
        `p3`, `p12`, `p14` and `p15`.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: EsimProfile
          properties:
            object:
              type: string
              const: eSimProfile
              description: Type of object is always `eSimProfile`.
            sim:
              type: object
              title: Sim
              description: 'A SIM is a unique card that identifies itself to a specific
                mobile network and provides voice, text, and data connectivity to
                a user’s device. There are two types of available SIMs: eSIM and pSIM.
                eSIMs can be activated and installed instantly on any eSIM compatible
                device, pSIMs (physical SIMs) must be provided to the user or installed
                into the device beforehand.'
              properties:
                object:
                  type: string
                  const: sim
                  description: Type of object is always `sim`.
                id:
                  type: string
                  description: Unique identifier for the SIM.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the SIM was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                iccid:
                  type: string
                  pattern: "^[0-9]{19,20}$"
                  description: The ICCID (integrated circuit card identifier) associated
                    with the SIM.
                  examples:
                  - '89883070000007537119'
                provider:
                  type: string
                  description: The ID of the network provider of the SIM.
                  examples:
                  - p9
                status:
                  type: string
                  enum:
                  - inactive
                  - active
                  - retired
                  description: The status of the SIM. Can be `active` or `inactive`.
                type:
                  type: string
                  enum:
                  - eSIM
                  - pSIM
                  description: The type of the SIM. Can be `eSIM` or `pSIM`.
              required:
              - object
              - id
              - metadata
              - iccid
              - provider
              - status
              - type
              - createdAt
            status:
              type: string
              enum:
              - deleted
              - disabled
              - enabled
              - installed
              - unknown
              description: The current status of the eSimProfile.
            updatedAt:
              type: string
              format: date-time
              description: Time at which the status was last updated.
              examples:
              - '2024-03-13T15:36:01Z'
          required:
          - object
          - sim
          - status
          - updatedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.eSimProfile.enabled
          description: Type is always `com.gigs.eSimProfile.enabled`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.eSimProfile.installed:
      type: object
      title: com.gigs.eSimProfile.installed
      description: Fires when the eSIM profile is installed on a device. Only available
        for providers `p3`, `p11`, `p12`, `p14` and `p15`.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: EsimProfile
          properties:
            object:
              type: string
              const: eSimProfile
              description: Type of object is always `eSimProfile`.
            sim:
              type: object
              title: Sim
              description: 'A SIM is a unique card that identifies itself to a specific
                mobile network and provides voice, text, and data connectivity to
                a user’s device. There are two types of available SIMs: eSIM and pSIM.
                eSIMs can be activated and installed instantly on any eSIM compatible
                device, pSIMs (physical SIMs) must be provided to the user or installed
                into the device beforehand.'
              properties:
                object:
                  type: string
                  const: sim
                  description: Type of object is always `sim`.
                id:
                  type: string
                  description: Unique identifier for the SIM.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the SIM was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                iccid:
                  type: string
                  pattern: "^[0-9]{19,20}$"
                  description: The ICCID (integrated circuit card identifier) associated
                    with the SIM.
                  examples:
                  - '89883070000007537119'
                provider:
                  type: string
                  description: The ID of the network provider of the SIM.
                  examples:
                  - p9
                status:
                  type: string
                  enum:
                  - inactive
                  - active
                  - retired
                  description: The status of the SIM. Can be `active` or `inactive`.
                type:
                  type: string
                  enum:
                  - eSIM
                  - pSIM
                  description: The type of the SIM. Can be `eSIM` or `pSIM`.
              required:
              - object
              - id
              - metadata
              - iccid
              - provider
              - status
              - type
              - createdAt
            status:
              type: string
              enum:
              - deleted
              - disabled
              - enabled
              - installed
              - unknown
              description: The current status of the eSimProfile.
            updatedAt:
              type: string
              format: date-time
              description: Time at which the status was last updated.
              examples:
              - '2024-03-13T15:36:01Z'
          required:
          - object
          - sim
          - status
          - updatedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.eSimProfile.installed
          description: Type is always `com.gigs.eSimProfile.installed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.eSimProfile.updated:
      type: object
      title: com.gigs.eSimProfile.updated
      description: Fires when the eSIM profile is updated. Only available for providers
        `p3`, `p14` and `p15`.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: EsimProfile
          properties:
            object:
              type: string
              const: eSimProfile
              description: Type of object is always `eSimProfile`.
            sim:
              type: object
              title: Sim
              description: 'A SIM is a unique card that identifies itself to a specific
                mobile network and provides voice, text, and data connectivity to
                a user’s device. There are two types of available SIMs: eSIM and pSIM.
                eSIMs can be activated and installed instantly on any eSIM compatible
                device, pSIMs (physical SIMs) must be provided to the user or installed
                into the device beforehand.'
              properties:
                object:
                  type: string
                  const: sim
                  description: Type of object is always `sim`.
                id:
                  type: string
                  description: Unique identifier for the SIM.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the SIM was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                iccid:
                  type: string
                  pattern: "^[0-9]{19,20}$"
                  description: The ICCID (integrated circuit card identifier) associated
                    with the SIM.
                  examples:
                  - '89883070000007537119'
                provider:
                  type: string
                  description: The ID of the network provider of the SIM.
                  examples:
                  - p9
                status:
                  type: string
                  enum:
                  - inactive
                  - active
                  - retired
                  description: The status of the SIM. Can be `active` or `inactive`.
                type:
                  type: string
                  enum:
                  - eSIM
                  - pSIM
                  description: The type of the SIM. Can be `eSIM` or `pSIM`.
              required:
              - object
              - id
              - metadata
              - iccid
              - provider
              - status
              - type
              - createdAt
            status:
              type: string
              enum:
              - deleted
              - disabled
              - enabled
              - installed
              - unknown
              description: The current status of the eSimProfile.
            updatedAt:
              type: string
              format: date-time
              description: Time at which the status was last updated.
              examples:
              - '2024-03-13T15:36:01Z'
          required:
          - object
          - sim
          - status
          - updatedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.eSimProfile.updated
          description: Type is always `com.gigs.eSimProfile.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.installation.created:
      type: object
      title: com.gigs.installation.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Installation
          properties:
            object:
              type: string
              const: installation
              description: Type of object is always `installation`.
            application:
              type: string
              enum:
              - gigs-access
              - gigs-connect
              - gigs-emails
              - gigs-uk-regulatory-smses
              description: Name of the installation application.
              examples:
              - gigs-connect
            createdAt:
              type: string
              format: date-time
              description: Time when the installation was created.
              examples:
              - '2022-01-21T19:38:34Z'
            settings:
              type: object
              description: Object containing installation settings.
              additionalProperties: true
          required:
          - object
          - application
          - settings
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.installation.created
          description: Type is always `com.gigs.installation.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.installation.updated:
      type: object
      title: com.gigs.installation.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Installation
          properties:
            object:
              type: string
              const: installation
              description: Type of object is always `installation`.
            application:
              type: string
              enum:
              - gigs-access
              - gigs-connect
              - gigs-emails
              - gigs-uk-regulatory-smses
              description: Name of the installation application.
              examples:
              - gigs-connect
            createdAt:
              type: string
              format: date-time
              description: Time when the installation was created.
              examples:
              - '2022-01-21T19:38:34Z'
            settings:
              type: object
              description: Object containing installation settings.
              additionalProperties: true
          required:
          - object
          - application
          - settings
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.installation.updated
          description: Type is always `com.gigs.installation.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.created:
      type: object
      title: com.gigs.invoice.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.created
          description: Type is always `com.gigs.invoice.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.finalized:
      type: object
      title: com.gigs.invoice.finalized
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.finalized
          description: Type is always `com.gigs.invoice.finalized`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.overdue:
      type: object
      title: com.gigs.invoice.overdue
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.overdue
          description: Type is always `com.gigs.invoice.overdue`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.paid:
      type: object
      title: com.gigs.invoice.paid
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.paid
          description: Type is always `com.gigs.invoice.paid`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.updated:
      type: object
      title: com.gigs.invoice.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.updated
          description: Type is always `com.gigs.invoice.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.voided:
      type: object
      title: com.gigs.invoice.voided
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.voided
          description: Type is always `com.gigs.invoice.voided`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.invoice.willBeOverdue:
      type: object
      title: com.gigs.invoice.willBeOverdue
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Invoice
          description: Invoices describe the amount due to a user for a given subscription
            period, including any relevant taxes and fees.
          properties:
            object:
              type: string
              const: invoice
              description: Type of object is always `invoice`.
            id:
              type: string
              description: Unique identifier for the invoice.
              examples:
              - inv_0SNlurA049MEWV1QTRqvd18YuG25
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address this invoice relates
                to.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            appliedBalance:
              anyOf:
              - type: object
                title: Price
                properties:
                  amount:
                    type: integer
                    description: The price amount in the currency's minor unit, e.g.
                      "cents" for many currencies.
                    minimum: 0
                    examples:
                    - 999
                  currency:
                    type: string
                    format: ISO 4217
                    description: Three-letter ISO 4217 currency code. Must be a supported
                      currency.
                    examples:
                    - USD
                required:
                - amount
                - currency
              - type: 'null'
              description: The amount of user balance applied to pay this invoice.
              examples:
              - amount: 1199
                currency: USD
            createdAt:
              type: string
              format: date-time
              description: Time when the invoice was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            dueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is due to be paid. After this time and the `invoiceGracePeriodDays`, which can be configured on project or subscription level, the invoice becomes overdue.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the invoice.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            fileUrl:
              type:
              - string
              - 'null'
              format: uri
              description: |
                A signed URL to download the invoice PDF file.
                The URL is valid for 2 hours.

                This field is only available for select projects and will be `null` for all others.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://files.gigs.com/invoices/inv_0SNlurA049MEWV1QTRqvd18YuG25.pdf?signature=abc123
            finalizedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was finalized and could no longer
                be changed.
              examples:
              - '2024-02-01T11:12:13Z'
            lineItems:
              type: array
              description: The line items that make up the invoice.
              items:
                type: object
                title: InvoiceLineItem
                properties:
                  object:
                    type: string
                    const: invoiceLineItem
                    description: Type of object is always `invoiceLineItem`.
                  id:
                    type: string
                    description: Unique identifier for this line item.
                    examples:
                    - lin_0SNlurA049MEWV11QUKZGDMxJmKe
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The value of the credited plan
                      price is subtracted to calculate the line item amount. Only
                      present for line items created for invoices of subscription
                      changes.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription this line
                      item refers to. Present for line items with plans.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  subscriptionAddon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription addon
                      this line item refers to. Present for line items with addons.
                    examples:
                    - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                  subscriptionChange:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the subscription change
                      this line item refers to. Present for line items that were created
                      for an invoice of a subscription change.
                    examples:
                    - sch_0SNlurA049MEWV3bE0SMtbIEJApp
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: InvoiceTax
                      properties:
                        object:
                          type: string
                          const: invoiceTax
                          description: Type of object is always `invoiceTax`.
                        id:
                          type: string
                          description: Unique identifier for the invoice tax.
                          examples:
                          - itx_0SNlurA049MEWV5Mw7cjrxFUo2Y3
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - object
                      - id
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      and taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - object
                - id
                - addon
                - creditedPlan
                - discount
                - plan
                - subscription
                - subscriptionAddon
                - subscriptionChange
                - subtotal
                - tax
                - taxes
                - total
            overdueAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the invoice is considered overdue. Once this happens, `invoiceOverdueAction`, which can be configured on project or subscription level, is applied.

                This field will have a value for invoices in the `finalized` state that have a reason of `subscriptionRenewal`. For all other invoices, this field will be `null`.
              examples:
              - '2024-02-01T11:13:13Z'
            paidAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the invoice was paid.
              examples:
              - '2024-02-01T11:13:13Z'
            payment:
              type:
              - string
              - 'null'
              description: The unique identifier for the payment associated with the
                invoice, if any. Only present if the invoice has been paid using Gigs
                Payments.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            period:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: The subscription period that this invoice relates to. It
                might not be present for new subscriptions if the period has not been
                defined yet.
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              - subscriptionRenewal
              - subscriptionRestore
              description: |
                The reason this invoice was created. It can have one of the following values:

                  - `subscriptionCreation`: The invoice is due to a new subscription.
                  - `subscriptionRenewal`: The invoice is due to a recurring subscription renewal.
                  - `subscriptionChange`: The invoice is due to a subscription change (e.g. plan upgrade).
                  - `subscriptionRestore`: The invoice is due to a subscription restore.
                  - `other`: The invoice is not related to a subscription but due an e.g. one-time addon.
            status:
              type: string
              enum:
              - draft
              - finalized
              - paid
              - voided
              description: |
                The status of the invoice. It can have one of the following values:

                  - `draft`: The invoice is still being edited.
                  - `finalized`: The invoice can no longer be changed and is awaiting payment.
                  - `paid`: The invoice was paid. This causes the associated resources to activated.
                  - `voided`: The invoice was voided and no longer has any effect.
              examples:
              - draft
            subscription:
              type: string
              description: The unique identifier for the subscription that this invoice
                relates to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the invoice having no taxes calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `fullyDiscounted`: The invoice is fully discounted due to a voucher or a free product.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the invoice,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - appliedBalance
          - discount
          - dueAt
          - fees
          - fileUrl
          - lineItems
          - overdueAt
          - payment
          - period
          - reason
          - status
          - subscription
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - voucher
          - createdAt
          - finalizedAt
          - paidAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.invoice.willBeOverdue
          description: Type is always `com.gigs.invoice.willBeOverdue`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.created:
      type: object
      title: com.gigs.payment.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.created
          description: Type is always `com.gigs.payment.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.disputeLost:
      type: object
      title: com.gigs.payment.disputeLost
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.disputeLost
          description: Type is always `com.gigs.payment.disputeLost`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.disputeWon:
      type: object
      title: com.gigs.payment.disputeWon
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.disputeWon
          description: Type is always `com.gigs.payment.disputeWon`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.disputed:
      type: object
      title: com.gigs.payment.disputed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.disputed
          description: Type is always `com.gigs.payment.disputed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.failed:
      type: object
      title: com.gigs.payment.failed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.failed
          description: Type is always `com.gigs.payment.failed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.paymentMethod.confirmed:
      type: object
      title: com.gigs.paymentMethod.confirmed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PaymentMethod
          description: Payment methods are used to process payments for subscriptions
            and orders.
          properties:
            object:
              type: string
              const: paymentMethod
              description: Type of object is always `paymentMethod`.
            id:
              type: string
              description: Unique identifier for the payment method.
              examples:
              - pm_1IHCiiI2m82Dc6YnhqGWH6JX
            brand:
              type:
              - string
              - 'null'
              enum:
              - amex
              - diners
              - discover
              - jcb
              - mastercard
              - unionpay
              - visa
              - unknown
              description: Card brand. Only available for type `card`.
              examples:
              - visa
            createdAt:
              type: string
              format: date-time
              description: Time when the payment method was created.
              examples:
              - '2021-02-14T19:38:34Z'
            last4:
              type:
              - string
              - 'null'
              description: The last four digits of the card. Only available for type
                `card`.
              examples:
              - '4242'
            provider:
              type: string
              const: stripe
              description: The provider of the payment method. Currently only `stripe`
                is supported.
            status:
              type: string
              enum:
              - available
              - requiresConfirmation
              description: "The status of the payment method. It can have one of the
                following values:\n\n        - `available`: The payment method is
                available for processing payments.\n        - `requiresConfirmation`:
                The payment method requires user confirmation before being able to
                process payments.\n      "
              examples:
              - available
            type:
              type: string
              enum:
              - card
              - applePay
              - googlePay
              description: Type of the payment method.
              examples:
              - card
            user:
              type: string
              description: Unique identifier for the user of the payment method.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - brand
          - last4
          - provider
          - status
          - type
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.paymentMethod.confirmed
          description: Type is always `com.gigs.paymentMethod.confirmed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.paymentMethod.created:
      type: object
      title: com.gigs.paymentMethod.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PaymentMethod
          description: Payment methods are used to process payments for subscriptions
            and orders.
          properties:
            object:
              type: string
              const: paymentMethod
              description: Type of object is always `paymentMethod`.
            id:
              type: string
              description: Unique identifier for the payment method.
              examples:
              - pm_1IHCiiI2m82Dc6YnhqGWH6JX
            brand:
              type:
              - string
              - 'null'
              enum:
              - amex
              - diners
              - discover
              - jcb
              - mastercard
              - unionpay
              - visa
              - unknown
              description: Card brand. Only available for type `card`.
              examples:
              - visa
            createdAt:
              type: string
              format: date-time
              description: Time when the payment method was created.
              examples:
              - '2021-02-14T19:38:34Z'
            last4:
              type:
              - string
              - 'null'
              description: The last four digits of the card. Only available for type
                `card`.
              examples:
              - '4242'
            provider:
              type: string
              const: stripe
              description: The provider of the payment method. Currently only `stripe`
                is supported.
            status:
              type: string
              enum:
              - available
              - requiresConfirmation
              description: "The status of the payment method. It can have one of the
                following values:\n\n        - `available`: The payment method is
                available for processing payments.\n        - `requiresConfirmation`:
                The payment method requires user confirmation before being able to
                process payments.\n      "
              examples:
              - available
            type:
              type: string
              enum:
              - card
              - applePay
              - googlePay
              description: Type of the payment method.
              examples:
              - card
            user:
              type: string
              description: Unique identifier for the user of the payment method.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - brand
          - last4
          - provider
          - status
          - type
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.paymentMethod.created
          description: Type is always `com.gigs.paymentMethod.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.paymentMethod.deleted:
      type: object
      title: com.gigs.paymentMethod.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PaymentMethod
          description: Payment methods are used to process payments for subscriptions
            and orders.
          properties:
            object:
              type: string
              const: paymentMethod
              description: Type of object is always `paymentMethod`.
            id:
              type: string
              description: Unique identifier for the payment method.
              examples:
              - pm_1IHCiiI2m82Dc6YnhqGWH6JX
            brand:
              type:
              - string
              - 'null'
              enum:
              - amex
              - diners
              - discover
              - jcb
              - mastercard
              - unionpay
              - visa
              - unknown
              description: Card brand. Only available for type `card`.
              examples:
              - visa
            createdAt:
              type: string
              format: date-time
              description: Time when the payment method was created.
              examples:
              - '2021-02-14T19:38:34Z'
            last4:
              type:
              - string
              - 'null'
              description: The last four digits of the card. Only available for type
                `card`.
              examples:
              - '4242'
            provider:
              type: string
              const: stripe
              description: The provider of the payment method. Currently only `stripe`
                is supported.
            status:
              type: string
              enum:
              - available
              - requiresConfirmation
              description: "The status of the payment method. It can have one of the
                following values:\n\n        - `available`: The payment method is
                available for processing payments.\n        - `requiresConfirmation`:
                The payment method requires user confirmation before being able to
                process payments.\n      "
              examples:
              - available
            type:
              type: string
              enum:
              - card
              - applePay
              - googlePay
              description: Type of the payment method.
              examples:
              - card
            user:
              type: string
              description: Unique identifier for the user of the payment method.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - brand
          - last4
          - provider
          - status
          - type
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.paymentMethod.deleted
          description: Type is always `com.gigs.paymentMethod.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.paymentMethodRequired:
      type: object
      title: com.gigs.payment.paymentMethodRequired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.paymentMethodRequired
          description: Type is always `com.gigs.payment.paymentMethodRequired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.refunded:
      type: object
      title: com.gigs.payment.refunded
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.refunded
          description: Type is always `com.gigs.payment.refunded`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.requiresConfirmation:
      type: object
      title: com.gigs.payment.requiresConfirmation
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.requiresConfirmation
          description: Type is always `com.gigs.payment.requiresConfirmation`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.payment.succeeded:
      type: object
      title: com.gigs.payment.succeeded
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Payment
          description: Payments describe the amount charged for an order or subscription
            using a given payment method.
          properties:
            object:
              type: string
              const: payment
              description: Type of object is always `payment`.
            id:
              type: string
              description: Unique identifier for the payment.
              examples:
              - pay_0SNlurA049MEWV2HRA0slWFuS8DV
            amount:
              type: object
              title: Price
              description: The total amount charged for this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            attemptedAt:
              type: string
              format: date-time
              description: Time when the payment was last attempted.
              examples:
              - '2021-02-14T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the payment was created.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeClosedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment dispute was closed. Only present
                if the payment is disputed.
              examples:
              - '2021-02-14T19:38:34Z'
            disputeOutcome:
              type:
              - string
              - 'null'
              enum:
              -
              - lost
              - won
              description: The outcome of a payment dispute. Only present if the payment
                is disputed.
            failedAttempts:
              type: integer
              description: The number of failed payment attempts so far.
              minimum: 0
              examples:
              - 3
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for the payment failure.
                Only present if the payment failed.
              examples:
              - paymentCardDeclined
            failureMessage:
              type:
              - string
              - 'null'
              description: A human-readable message indicating the reason for the
                payment failure. Only present if the payment failed.
              examples:
              - The card has been declined.
            method:
              anyOf:
              - type: object
                title: PaymentMethod
                description: Payment methods are used to process payments for subscriptions
                  and orders.
                properties:
                  object:
                    type: string
                    const: paymentMethod
                    description: Type of object is always `paymentMethod`.
                  id:
                    type: string
                    description: Unique identifier for the payment method.
                    examples:
                    - pm_1IHCiiI2m82Dc6YnhqGWH6JX
                  brand:
                    type:
                    - string
                    - 'null'
                    enum:
                    - amex
                    - diners
                    - discover
                    - jcb
                    - mastercard
                    - unionpay
                    - visa
                    - unknown
                    description: Card brand. Only available for type `card`.
                    examples:
                    - visa
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the payment method was created.
                    examples:
                    - '2021-02-14T19:38:34Z'
                  last4:
                    type:
                    - string
                    - 'null'
                    description: The last four digits of the card. Only available
                      for type `card`.
                    examples:
                    - '4242'
                  provider:
                    type: string
                    const: stripe
                    description: The provider of the payment method. Currently only
                      `stripe` is supported.
                  status:
                    type: string
                    enum:
                    - available
                    - requiresConfirmation
                    description: "The status of the payment method. It can have one
                      of the following values:\n\n        - `available`: The payment
                      method is available for processing payments.\n        - `requiresConfirmation`:
                      The payment method requires user confirmation before being able
                      to process payments.\n      "
                    examples:
                    - available
                  type:
                    type: string
                    enum:
                    - card
                    - applePay
                    - googlePay
                    description: Type of the payment method.
                    examples:
                    - card
                  user:
                    type: string
                    description: Unique identifier for the user of the payment method.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - brand
                - last4
                - provider
                - status
                - type
                - user
                - createdAt
              - type: 'null'
            reason:
              type: string
              enum:
              - subscriptionCreation
              - subscriptionRenewal
              - other
              description: "The reason for this payment. It can have one of the following
                values:\n\n        - `subscriptionCreation`: The payment is due to
                a new subscription.\n        - `subscriptionRenewal`: The payment
                is due to a recurring subscription renewal.\n        - `other`: The
                invoice is not related to a subscription but due an e.g. one-time
                addon.\n      "
            references:
              type: array
              description: List of payment references. Supported reference types are
                `order` and `subscription`.
              items:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                    - order
                    - subscription
                    - subscriptionAddon
                    description: The type of the referenced object.
                  id:
                    type: string
                    description: Unique identifier of the referenced object.
                    examples:
                    - ord_0SNlurA049MEWV0SiRFOw0dmChqN
                required:
                - object
                - id
            refunded:
              type: object
              title: Price
              description: The total amount refunded from this payment.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            refundedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the payment was fully refunded. Only present
                if the payment was refunded.
              examples:
              - '2021-02-14T19:38:34Z'
            status:
              type: string
              enum:
              - pending
              - succeeded
              - requiresConfirmation
              - failed
              - refunded
              - disputed
              - requiresPaymentMethod
              description: "The status of the payment. It can have one of the following
                values:\n\n        - `pending`: The payment has been created but not
                yet processed by the payment provider.\n        - `succeeded`: The
                payment was completed successfully.\n        - `failed`: The payment
                failed. Payments are retried automatically for up to 3 weeks.\n        -
                `refunded`: The payment was fully refunded. Partially refunded payments
                do not have this status.\n        - `disputed`: The payment is under
                dispute.\n        - `requiresConfirmation`: The payment requires user
                confirmation before being processed.\n        - `requiresPaymentMethod`:
                The payment is awaiting for a payment method to be attached.\n      "
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
          required:
          - object
          - id
          - amount
          - disputeOutcome
          - failedAttempts
          - failureCode
          - failureMessage
          - method
          - reason
          - references
          - refunded
          - status
          - user
          - attemptedAt
          - createdAt
          - disputeClosedAt
          - refundedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.payment.succeeded
          description: Type is always `com.gigs.payment.succeeded`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.plan.archived:
      type: object
      title: com.gigs.plan.archived
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Plan
          description: Plans define the network options and parameters offered to
            the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data,
            sms, voice) and limits are configurable, and Gigs will work with you to
            find the best balance for your users.
          properties:
            object:
              type: string
              const: plan
              description: Type of object is always `plan`.
            id:
              type: string
              description: Unique identifier for the plan.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            allowances:
              type: object
              title: Allowances
              description: Usage allowances included in the plan - i.e. how many bytes
                of data, voice minutes & sms messages the user has access to.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              type: object
              title: Coverage
              description: The geographic coverage of the plan.
              properties:
                object:
                  type: string
                  const: coverage
                  description: Type of object is always `coverage`.
                id:
                  type: string
                  description: Unique identifier for the coverage configuration.
                  examples:
                  - de
                countries:
                  type: array
                  description: List of countries in ISO 3166-1 alpha-2 format covered
                    by this coverage configuration.
                  items:
                    type: string
                    format: ISO 3166-1 alpha-2
                    examples:
                    - DE
                  examples:
                  - - DE
                    - FR
                    - US
                name:
                  type: string
                  description: A human-readable identifier of the coverage configuration,
                    might not be unique.
                  examples:
                  - Europe
              required:
              - object
              - id
              - countries
              - name
            createdAt:
              type: string
              format: date-time
              description: Time when the plan was created.
              examples:
              - '2021-01-21T19:38:34Z'
            description:
              type:
              - string
              - 'null'
              description: The plan's description, meant to be displayable to the
                users.
              examples:
              - A data plan you will love! Operates in most countries of the world.
            image:
              type:
              - string
              - 'null'
              format: url
              description: The plan's image, meant to be displayable to the users.
              examples:
              - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
            limits:
              type: object
              title: Limits
              description: Usage limits for the plan - i.e. the maximum available
                bandwidth, fair-use data limits and throttling threshold.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The maximum amount of data that can be used in bytes.
                    A value of `null` indicates unlimited data.
                  examples:
                  - 100000000000
                bandwidthBitsPerSecond:
                  type:
                  - integer
                  - 'null'
                  description: The maximum bandwidth in bits per second. A value of
                    `null` indicates the maximum bandwidth this network allows.
                  examples:
                  - 100000000
                throttling:
                  type:
                  - object
                  - 'null'
                  description: The throttling configuration for the plan, if any.
                  properties:
                    thresholdBytes:
                      type: integer
                      description: The threshold in bytes at which throttling will
                        be applied.
                      examples:
                      - 10000000000
                    bandwidthBitsPerSecond:
                      type: integer
                      description: The bandwidth in bits per second that the plan
                        will be throttled to.
                      examples:
                      - 512000
                  required:
                  - thresholdBytes
                  - bandwidthBitsPerSecond
              required:
              - dataBytes
              - bandwidthBitsPerSecond
              - throttling
            name:
              type: string
              description: The plan's name, meant to be displayable to the users.
              examples:
              - Gigs Global
            price:
              type: object
              title: Price
              description: The price of the plan.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this plan.
              examples:
              - p5
            requirements:
              type: object
              description: Required information that must be collected from the user
                in order to create a subscription with this plan.
              properties:
                address:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The address requirements that must be fulfilled before
                    a user may purchase a subscription.
                  examples:
                  - present
                device:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The device requirements that must be fulfilled before
                    a user may purchase a subscription.
                user.birthday:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user birthday requirements that must be fulfilled
                    before a user may purchase a subscription.
                user.fullName:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user full name requirements that must be fulfilled
                    before a user may purchase a subscription.
                  examples:
                  - present
              required:
              - address
              - device
              - user.birthday
              - user.fullName
            simTypes:
              type: array
              description: List of SIM types supported by this plan. Can be `eSIM`,
                `pSIM`, or both.
              items:
                type: string
                enum:
                - eSIM
                - pSIM
              examples:
              - - eSIM
                - pSIM
            status:
              type: string
              enum:
              - available
              - archived
              - pending
              - draft
            validity:
              type: object
              title: Validity
              description: Plan validity information - i.e. subscription period length,
                and the minimum number of periods before the plan can be ended.
              properties:
                minimumPeriods:
                  type: integer
                  description: The minimum number of subscription periods that the
                    plan must be renewed.
                  minimum: 0
                  examples:
                  - 12
                type:
                  type: string
                  enum:
                  - recurring
                  - oneTime
                  description: The validity type of this plan.
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the subscription period.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property)
                    in each subscription period.
                  minimum: 1
                  examples:
                  - 7
              required:
              - minimumPeriods
              - type
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `message`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - image
          - limits
          - name
          - price
          - provider
          - requirements
          - simTypes
          - sms
          - smsUnit
          - status
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.plan.archived
          description: Type is always `com.gigs.plan.archived`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.plan.created:
      type: object
      title: com.gigs.plan.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Plan
          description: Plans define the network options and parameters offered to
            the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data,
            sms, voice) and limits are configurable, and Gigs will work with you to
            find the best balance for your users.
          properties:
            object:
              type: string
              const: plan
              description: Type of object is always `plan`.
            id:
              type: string
              description: Unique identifier for the plan.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            allowances:
              type: object
              title: Allowances
              description: Usage allowances included in the plan - i.e. how many bytes
                of data, voice minutes & sms messages the user has access to.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              type: object
              title: Coverage
              description: The geographic coverage of the plan.
              properties:
                object:
                  type: string
                  const: coverage
                  description: Type of object is always `coverage`.
                id:
                  type: string
                  description: Unique identifier for the coverage configuration.
                  examples:
                  - de
                countries:
                  type: array
                  description: List of countries in ISO 3166-1 alpha-2 format covered
                    by this coverage configuration.
                  items:
                    type: string
                    format: ISO 3166-1 alpha-2
                    examples:
                    - DE
                  examples:
                  - - DE
                    - FR
                    - US
                name:
                  type: string
                  description: A human-readable identifier of the coverage configuration,
                    might not be unique.
                  examples:
                  - Europe
              required:
              - object
              - id
              - countries
              - name
            createdAt:
              type: string
              format: date-time
              description: Time when the plan was created.
              examples:
              - '2021-01-21T19:38:34Z'
            description:
              type:
              - string
              - 'null'
              description: The plan's description, meant to be displayable to the
                users.
              examples:
              - A data plan you will love! Operates in most countries of the world.
            image:
              type:
              - string
              - 'null'
              format: url
              description: The plan's image, meant to be displayable to the users.
              examples:
              - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
            limits:
              type: object
              title: Limits
              description: Usage limits for the plan - i.e. the maximum available
                bandwidth, fair-use data limits and throttling threshold.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The maximum amount of data that can be used in bytes.
                    A value of `null` indicates unlimited data.
                  examples:
                  - 100000000000
                bandwidthBitsPerSecond:
                  type:
                  - integer
                  - 'null'
                  description: The maximum bandwidth in bits per second. A value of
                    `null` indicates the maximum bandwidth this network allows.
                  examples:
                  - 100000000
                throttling:
                  type:
                  - object
                  - 'null'
                  description: The throttling configuration for the plan, if any.
                  properties:
                    thresholdBytes:
                      type: integer
                      description: The threshold in bytes at which throttling will
                        be applied.
                      examples:
                      - 10000000000
                    bandwidthBitsPerSecond:
                      type: integer
                      description: The bandwidth in bits per second that the plan
                        will be throttled to.
                      examples:
                      - 512000
                  required:
                  - thresholdBytes
                  - bandwidthBitsPerSecond
              required:
              - dataBytes
              - bandwidthBitsPerSecond
              - throttling
            name:
              type: string
              description: The plan's name, meant to be displayable to the users.
              examples:
              - Gigs Global
            price:
              type: object
              title: Price
              description: The price of the plan.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this plan.
              examples:
              - p5
            requirements:
              type: object
              description: Required information that must be collected from the user
                in order to create a subscription with this plan.
              properties:
                address:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The address requirements that must be fulfilled before
                    a user may purchase a subscription.
                  examples:
                  - present
                device:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The device requirements that must be fulfilled before
                    a user may purchase a subscription.
                user.birthday:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user birthday requirements that must be fulfilled
                    before a user may purchase a subscription.
                user.fullName:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user full name requirements that must be fulfilled
                    before a user may purchase a subscription.
                  examples:
                  - present
              required:
              - address
              - device
              - user.birthday
              - user.fullName
            simTypes:
              type: array
              description: List of SIM types supported by this plan. Can be `eSIM`,
                `pSIM`, or both.
              items:
                type: string
                enum:
                - eSIM
                - pSIM
              examples:
              - - eSIM
                - pSIM
            status:
              type: string
              enum:
              - available
              - archived
              - pending
              - draft
            validity:
              type: object
              title: Validity
              description: Plan validity information - i.e. subscription period length,
                and the minimum number of periods before the plan can be ended.
              properties:
                minimumPeriods:
                  type: integer
                  description: The minimum number of subscription periods that the
                    plan must be renewed.
                  minimum: 0
                  examples:
                  - 12
                type:
                  type: string
                  enum:
                  - recurring
                  - oneTime
                  description: The validity type of this plan.
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the subscription period.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property)
                    in each subscription period.
                  minimum: 1
                  examples:
                  - 7
              required:
              - minimumPeriods
              - type
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `message`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - image
          - limits
          - name
          - price
          - provider
          - requirements
          - simTypes
          - sms
          - smsUnit
          - status
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.plan.created
          description: Type is always `com.gigs.plan.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.plan.deleted:
      type: object
      title: com.gigs.plan.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Plan
          description: Plans define the network options and parameters offered to
            the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data,
            sms, voice) and limits are configurable, and Gigs will work with you to
            find the best balance for your users.
          properties:
            object:
              type: string
              const: plan
              description: Type of object is always `plan`.
            id:
              type: string
              description: Unique identifier for the plan.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            allowances:
              type: object
              title: Allowances
              description: Usage allowances included in the plan - i.e. how many bytes
                of data, voice minutes & sms messages the user has access to.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              type: object
              title: Coverage
              description: The geographic coverage of the plan.
              properties:
                object:
                  type: string
                  const: coverage
                  description: Type of object is always `coverage`.
                id:
                  type: string
                  description: Unique identifier for the coverage configuration.
                  examples:
                  - de
                countries:
                  type: array
                  description: List of countries in ISO 3166-1 alpha-2 format covered
                    by this coverage configuration.
                  items:
                    type: string
                    format: ISO 3166-1 alpha-2
                    examples:
                    - DE
                  examples:
                  - - DE
                    - FR
                    - US
                name:
                  type: string
                  description: A human-readable identifier of the coverage configuration,
                    might not be unique.
                  examples:
                  - Europe
              required:
              - object
              - id
              - countries
              - name
            createdAt:
              type: string
              format: date-time
              description: Time when the plan was created.
              examples:
              - '2021-01-21T19:38:34Z'
            description:
              type:
              - string
              - 'null'
              description: The plan's description, meant to be displayable to the
                users.
              examples:
              - A data plan you will love! Operates in most countries of the world.
            image:
              type:
              - string
              - 'null'
              format: url
              description: The plan's image, meant to be displayable to the users.
              examples:
              - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
            limits:
              type: object
              title: Limits
              description: Usage limits for the plan - i.e. the maximum available
                bandwidth, fair-use data limits and throttling threshold.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The maximum amount of data that can be used in bytes.
                    A value of `null` indicates unlimited data.
                  examples:
                  - 100000000000
                bandwidthBitsPerSecond:
                  type:
                  - integer
                  - 'null'
                  description: The maximum bandwidth in bits per second. A value of
                    `null` indicates the maximum bandwidth this network allows.
                  examples:
                  - 100000000
                throttling:
                  type:
                  - object
                  - 'null'
                  description: The throttling configuration for the plan, if any.
                  properties:
                    thresholdBytes:
                      type: integer
                      description: The threshold in bytes at which throttling will
                        be applied.
                      examples:
                      - 10000000000
                    bandwidthBitsPerSecond:
                      type: integer
                      description: The bandwidth in bits per second that the plan
                        will be throttled to.
                      examples:
                      - 512000
                  required:
                  - thresholdBytes
                  - bandwidthBitsPerSecond
              required:
              - dataBytes
              - bandwidthBitsPerSecond
              - throttling
            name:
              type: string
              description: The plan's name, meant to be displayable to the users.
              examples:
              - Gigs Global
            price:
              type: object
              title: Price
              description: The price of the plan.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this plan.
              examples:
              - p5
            requirements:
              type: object
              description: Required information that must be collected from the user
                in order to create a subscription with this plan.
              properties:
                address:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The address requirements that must be fulfilled before
                    a user may purchase a subscription.
                  examples:
                  - present
                device:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The device requirements that must be fulfilled before
                    a user may purchase a subscription.
                user.birthday:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user birthday requirements that must be fulfilled
                    before a user may purchase a subscription.
                user.fullName:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user full name requirements that must be fulfilled
                    before a user may purchase a subscription.
                  examples:
                  - present
              required:
              - address
              - device
              - user.birthday
              - user.fullName
            simTypes:
              type: array
              description: List of SIM types supported by this plan. Can be `eSIM`,
                `pSIM`, or both.
              items:
                type: string
                enum:
                - eSIM
                - pSIM
              examples:
              - - eSIM
                - pSIM
            status:
              type: string
              enum:
              - available
              - archived
              - pending
              - draft
            validity:
              type: object
              title: Validity
              description: Plan validity information - i.e. subscription period length,
                and the minimum number of periods before the plan can be ended.
              properties:
                minimumPeriods:
                  type: integer
                  description: The minimum number of subscription periods that the
                    plan must be renewed.
                  minimum: 0
                  examples:
                  - 12
                type:
                  type: string
                  enum:
                  - recurring
                  - oneTime
                  description: The validity type of this plan.
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the subscription period.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property)
                    in each subscription period.
                  minimum: 1
                  examples:
                  - 7
              required:
              - minimumPeriods
              - type
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `message`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - image
          - limits
          - name
          - price
          - provider
          - requirements
          - simTypes
          - sms
          - smsUnit
          - status
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.plan.deleted
          description: Type is always `com.gigs.plan.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.plan.published:
      type: object
      title: com.gigs.plan.published
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Plan
          description: Plans define the network options and parameters offered to
            the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data,
            sms, voice) and limits are configurable, and Gigs will work with you to
            find the best balance for your users.
          properties:
            object:
              type: string
              const: plan
              description: Type of object is always `plan`.
            id:
              type: string
              description: Unique identifier for the plan.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            allowances:
              type: object
              title: Allowances
              description: Usage allowances included in the plan - i.e. how many bytes
                of data, voice minutes & sms messages the user has access to.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              type: object
              title: Coverage
              description: The geographic coverage of the plan.
              properties:
                object:
                  type: string
                  const: coverage
                  description: Type of object is always `coverage`.
                id:
                  type: string
                  description: Unique identifier for the coverage configuration.
                  examples:
                  - de
                countries:
                  type: array
                  description: List of countries in ISO 3166-1 alpha-2 format covered
                    by this coverage configuration.
                  items:
                    type: string
                    format: ISO 3166-1 alpha-2
                    examples:
                    - DE
                  examples:
                  - - DE
                    - FR
                    - US
                name:
                  type: string
                  description: A human-readable identifier of the coverage configuration,
                    might not be unique.
                  examples:
                  - Europe
              required:
              - object
              - id
              - countries
              - name
            createdAt:
              type: string
              format: date-time
              description: Time when the plan was created.
              examples:
              - '2021-01-21T19:38:34Z'
            description:
              type:
              - string
              - 'null'
              description: The plan's description, meant to be displayable to the
                users.
              examples:
              - A data plan you will love! Operates in most countries of the world.
            image:
              type:
              - string
              - 'null'
              format: url
              description: The plan's image, meant to be displayable to the users.
              examples:
              - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
            limits:
              type: object
              title: Limits
              description: Usage limits for the plan - i.e. the maximum available
                bandwidth, fair-use data limits and throttling threshold.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The maximum amount of data that can be used in bytes.
                    A value of `null` indicates unlimited data.
                  examples:
                  - 100000000000
                bandwidthBitsPerSecond:
                  type:
                  - integer
                  - 'null'
                  description: The maximum bandwidth in bits per second. A value of
                    `null` indicates the maximum bandwidth this network allows.
                  examples:
                  - 100000000
                throttling:
                  type:
                  - object
                  - 'null'
                  description: The throttling configuration for the plan, if any.
                  properties:
                    thresholdBytes:
                      type: integer
                      description: The threshold in bytes at which throttling will
                        be applied.
                      examples:
                      - 10000000000
                    bandwidthBitsPerSecond:
                      type: integer
                      description: The bandwidth in bits per second that the plan
                        will be throttled to.
                      examples:
                      - 512000
                  required:
                  - thresholdBytes
                  - bandwidthBitsPerSecond
              required:
              - dataBytes
              - bandwidthBitsPerSecond
              - throttling
            name:
              type: string
              description: The plan's name, meant to be displayable to the users.
              examples:
              - Gigs Global
            price:
              type: object
              title: Price
              description: The price of the plan.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this plan.
              examples:
              - p5
            requirements:
              type: object
              description: Required information that must be collected from the user
                in order to create a subscription with this plan.
              properties:
                address:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The address requirements that must be fulfilled before
                    a user may purchase a subscription.
                  examples:
                  - present
                device:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The device requirements that must be fulfilled before
                    a user may purchase a subscription.
                user.birthday:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user birthday requirements that must be fulfilled
                    before a user may purchase a subscription.
                user.fullName:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user full name requirements that must be fulfilled
                    before a user may purchase a subscription.
                  examples:
                  - present
              required:
              - address
              - device
              - user.birthday
              - user.fullName
            simTypes:
              type: array
              description: List of SIM types supported by this plan. Can be `eSIM`,
                `pSIM`, or both.
              items:
                type: string
                enum:
                - eSIM
                - pSIM
              examples:
              - - eSIM
                - pSIM
            status:
              type: string
              enum:
              - available
              - archived
              - pending
              - draft
            validity:
              type: object
              title: Validity
              description: Plan validity information - i.e. subscription period length,
                and the minimum number of periods before the plan can be ended.
              properties:
                minimumPeriods:
                  type: integer
                  description: The minimum number of subscription periods that the
                    plan must be renewed.
                  minimum: 0
                  examples:
                  - 12
                type:
                  type: string
                  enum:
                  - recurring
                  - oneTime
                  description: The validity type of this plan.
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the subscription period.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property)
                    in each subscription period.
                  minimum: 1
                  examples:
                  - 7
              required:
              - minimumPeriods
              - type
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `message`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - image
          - limits
          - name
          - price
          - provider
          - requirements
          - simTypes
          - sms
          - smsUnit
          - status
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.plan.published
          description: Type is always `com.gigs.plan.published`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.plan.updated:
      type: object
      title: com.gigs.plan.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Plan
          description: Plans define the network options and parameters offered to
            the end user, e.g. 'Unlimited data, voice & text'. Plan allowances (data,
            sms, voice) and limits are configurable, and Gigs will work with you to
            find the best balance for your users.
          properties:
            object:
              type: string
              const: plan
              description: Type of object is always `plan`.
            id:
              type: string
              description: Unique identifier for the plan.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            allowances:
              type: object
              title: Allowances
              description: Usage allowances included in the plan - i.e. how many bytes
                of data, voice minutes & sms messages the user has access to.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The data allowance in bytes. A value of `null` indicates
                    unlimited data.
                  examples:
                  - 10000000000
                voiceSeconds:
                  type:
                  - integer
                  - 'null'
                  description: The voice call allowance in seconds. A value of `null`
                    indicates unlimited calls.
                  examples:
                  - 30000
                smsMessages:
                  type:
                  - integer
                  - 'null'
                  description: The SMS allowance in messages. A value of `null` indicates
                    unlimited SMS.
                  examples:
                  - 100
              required:
              - dataBytes
              - voiceSeconds
              - smsMessages
            coverage:
              type: object
              title: Coverage
              description: The geographic coverage of the plan.
              properties:
                object:
                  type: string
                  const: coverage
                  description: Type of object is always `coverage`.
                id:
                  type: string
                  description: Unique identifier for the coverage configuration.
                  examples:
                  - de
                countries:
                  type: array
                  description: List of countries in ISO 3166-1 alpha-2 format covered
                    by this coverage configuration.
                  items:
                    type: string
                    format: ISO 3166-1 alpha-2
                    examples:
                    - DE
                  examples:
                  - - DE
                    - FR
                    - US
                name:
                  type: string
                  description: A human-readable identifier of the coverage configuration,
                    might not be unique.
                  examples:
                  - Europe
              required:
              - object
              - id
              - countries
              - name
            createdAt:
              type: string
              format: date-time
              description: Time when the plan was created.
              examples:
              - '2021-01-21T19:38:34Z'
            description:
              type:
              - string
              - 'null'
              description: The plan's description, meant to be displayable to the
                users.
              examples:
              - A data plan you will love! Operates in most countries of the world.
            image:
              type:
              - string
              - 'null'
              format: url
              description: The plan's image, meant to be displayable to the users.
              examples:
              - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
            limits:
              type: object
              title: Limits
              description: Usage limits for the plan - i.e. the maximum available
                bandwidth, fair-use data limits and throttling threshold.
              properties:
                dataBytes:
                  type:
                  - integer
                  - 'null'
                  description: The maximum amount of data that can be used in bytes.
                    A value of `null` indicates unlimited data.
                  examples:
                  - 100000000000
                bandwidthBitsPerSecond:
                  type:
                  - integer
                  - 'null'
                  description: The maximum bandwidth in bits per second. A value of
                    `null` indicates the maximum bandwidth this network allows.
                  examples:
                  - 100000000
                throttling:
                  type:
                  - object
                  - 'null'
                  description: The throttling configuration for the plan, if any.
                  properties:
                    thresholdBytes:
                      type: integer
                      description: The threshold in bytes at which throttling will
                        be applied.
                      examples:
                      - 10000000000
                    bandwidthBitsPerSecond:
                      type: integer
                      description: The bandwidth in bits per second that the plan
                        will be throttled to.
                      examples:
                      - 512000
                  required:
                  - thresholdBytes
                  - bandwidthBitsPerSecond
              required:
              - dataBytes
              - bandwidthBitsPerSecond
              - throttling
            name:
              type: string
              description: The plan's name, meant to be displayable to the users.
              examples:
              - Gigs Global
            price:
              type: object
              title: Price
              description: The price of the plan.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            provider:
              type: string
              description: The ID of the network provider supported by this plan.
              examples:
              - p5
            requirements:
              type: object
              description: Required information that must be collected from the user
                in order to create a subscription with this plan.
              properties:
                address:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The address requirements that must be fulfilled before
                    a user may purchase a subscription.
                  examples:
                  - present
                device:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The device requirements that must be fulfilled before
                    a user may purchase a subscription.
                user.birthday:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user birthday requirements that must be fulfilled
                    before a user may purchase a subscription.
                user.fullName:
                  type: string
                  enum:
                  - none
                  - present
                  - verified
                  description: The user full name requirements that must be fulfilled
                    before a user may purchase a subscription.
                  examples:
                  - present
              required:
              - address
              - device
              - user.birthday
              - user.fullName
            simTypes:
              type: array
              description: List of SIM types supported by this plan. Can be `eSIM`,
                `pSIM`, or both.
              items:
                type: string
                enum:
                - eSIM
                - pSIM
              examples:
              - - eSIM
                - pSIM
            status:
              type: string
              enum:
              - available
              - archived
              - pending
              - draft
            validity:
              type: object
              title: Validity
              description: Plan validity information - i.e. subscription period length,
                and the minimum number of periods before the plan can be ended.
              properties:
                minimumPeriods:
                  type: integer
                  description: The minimum number of subscription periods that the
                    plan must be renewed.
                  minimum: 0
                  examples:
                  - 12
                type:
                  type: string
                  enum:
                  - recurring
                  - oneTime
                  description: The validity type of this plan.
                unit:
                  type: string
                  enum:
                  - day
                  - month
                  description: The time unit of the subscription period.
                value:
                  type: integer
                  description: The amount of units (specified in the `unit` property)
                    in each subscription period.
                  minimum: 1
                  examples:
                  - 7
              required:
              - minimumPeriods
              - type
              - unit
              - value
            data:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
              examples:
              - 10000000000
              deprecated: true
            dataUnit:
              type: string
              const: byte
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the data value is always `byte`.
              deprecated: true
            sms:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
              examples:
              - 100
              deprecated: true
            smsUnit:
              type: string
              const: message
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the sms value is always `message`.
              deprecated: true
            voice:
              type: integer
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
              examples:
              - 30000
              deprecated: true
            voiceUnit:
              type: string
              const: second
              description: |-
                <!-- theme: warning -->
                > #### Deprecated
                >
                > This property is deprecated and will be removed in the future.
                > Use `allowances` instead.


                The unit of the voice value is always `second`.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - allowances
          - coverage
          - data
          - dataUnit
          - description
          - image
          - limits
          - name
          - price
          - provider
          - requirements
          - simTypes
          - sms
          - smsUnit
          - status
          - validity
          - voice
          - voiceUnit
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.plan.updated
          description: Type is always `com.gigs.plan.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.completed:
      type: object
      title: com.gigs.portOut.completed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.completed
          description: Type is always `com.gigs.portOut.completed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.created:
      type: object
      title: com.gigs.portOut.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.created
          description: Type is always `com.gigs.portOut.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOutCredentials.issued:
      type: object
      title: com.gigs.portOutCredentials.issued
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: DeprecatedPortOutCredentials
          properties:
            object:
              type: string
              const: portOutCredentials
              description: Type of object is always `portOutCredentials`.
            accountNumber:
              type: string
              description: The account number on the service provider.
              examples:
              - '123456789'
            accountPin:
              type:
              - string
              - 'null'
              description: The account pin on the service provider. This value will
                always be null in all events.
              examples:
              - '1234'
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out credentials.

                A value of `portOut` indicates that using these
                port out credentials will transfer the phone number to the recipient provider.

                Port out credentials with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.


                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - portOut
            expiresAt:
              type: string
              format: date-time
              description: Time when the port-out credentials expire and won't be
                valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - accountNumber
          - accountPin
          - behavior
          - subscription
          - expiresAt
          deprecated: true
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOutCredentials.issued
          description: Type is always `com.gigs.portOutCredentials.issued`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: true
    com.gigs.portOut.expired:
      type: object
      title: com.gigs.portOut.expired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.expired
          description: Type is always `com.gigs.portOut.expired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.failed:
      type: object
      title: com.gigs.portOut.failed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.failed
          description: Type is always `com.gigs.portOut.failed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.issued:
      type: object
      title: com.gigs.portOut.issued
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.issued
          description: Type is always `com.gigs.portOut.issued`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.processing:
      type: object
      title: com.gigs.portOut.processing
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.processing
          description: Type is always `com.gigs.portOut.processing`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.portOut.updated:
      type: object
      title: com.gigs.portOut.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: PortOut
          description: Port out is required when a user wants to keep their number
            when cancelling their subscription. There are multiple steps involved
            between the user, the current carrier, and the new carrier.
          properties:
            object:
              type: string
              const: portOut
              description: Type of object is always `portOut`.
            id:
              type: string
              description: Unique identifier for the port out.
              examples:
              - pto_0SNlurA049MEWV4DWEaT4SaeDI8s
            behavior:
              type: string
              enum:
              - cancelOnly
              - portOut
              description: |
                The behavior of the port out.

                A value of `portOut` indicates that using this
                port out will transfer the phone number to the recipient provider.

                Port out with behavior `cancelOnly`
                will cancel the service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portOut
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out is completed successfully.
              examples:
              - '2022-02-21T19:38:34Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the port out was created.
              examples:
              - '2020-01-01T00:00:00Z'
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the port out expires and won't be valid anymore.
              examples:
              - '2022-02-21T19:38:34Z'
            failureReason:
              type:
              - string
              - 'null'
              enum:
              -
              - consentNotGiven
              - consentRequestCanceled
              description: The reason for the port out failure.
              examples:
              - consentNotGiven
            status:
              type: string
              enum:
              - completed
              - expired
              - failed
              - initiated
              - issued
              - processing
              description: The current status of the port out.
              examples:
              - issued
            subscription:
              type: string
              description: Unique identifier of the subscription affected.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this port out credentials
                are for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - behavior
          - completedAt
          - createdAt
          - subscription
          - expiredAt
          - status
          - user
          - failureReason
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.portOut.updated
          description: Type is always `com.gigs.portOut.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.canceled:
      type: object
      title: com.gigs.porting.canceled
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.canceled
          description: Type is always `com.gigs.porting.canceled`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.completed:
      type: object
      title: com.gigs.porting.completed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.completed
          description: Type is always `com.gigs.porting.completed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.created:
      type: object
      title: com.gigs.porting.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.created
          description: Type is always `com.gigs.porting.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.declined:
      type: object
      title: com.gigs.porting.declined
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.declined
          description: Type is always `com.gigs.porting.declined`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.deleted:
      type: object
      title: com.gigs.porting.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.deleted
          description: Type is always `com.gigs.porting.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.expired:
      type: object
      title: com.gigs.porting.expired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.expired
          description: Type is always `com.gigs.porting.expired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.informationRequired:
      type: object
      title: com.gigs.porting.informationRequired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.informationRequired
          description: Type is always `com.gigs.porting.informationRequired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.requested:
      type: object
      title: com.gigs.porting.requested
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.requested
          description: Type is always `com.gigs.porting.requested`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.porting.updated:
      type: object
      title: com.gigs.porting.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Porting
          description: Porting is required when a user wants to keep their phone number
            when changing their subscription. There are multiple steps involved between
            the user, their previous carrier, and the new subscriber
          properties:
            object:
              type: string
              const: porting
              description: Type of object is always `porting`.
            id:
              type: string
              description: Unique identifier for the porting.
              examples:
              - prt_0SNlurA049MEWV39s2kSYqaat7ZS
            accountNumber:
              type:
              - string
              - 'null'
              description: The account number on the donor service provider.
              examples:
              - '123456789'
            accountPinExists:
              type: boolean
              description: Whether the account PIN has been provided.
              examples:
              - true
            address:
              type:
              - object
              - 'null'
              description: The address of the account holder on the donor service
                provider.
              properties:
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: TThe second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            behavior:
              type: string
              enum:
              - cancelOnly
              - portIn
              description: |
                The behavior of the porting.

                A value of `portIn` indicates that this porting
                will transfer the phone number from the previous provider.

                A porting with behavior `cancelOnly` will cancel
                the previous service without transferring the number. This behavior is
                currently only available for local plans in the United Kingdom.
              examples:
              - portIn
            billingPinExists:
              type: boolean
              description: Whether the billing PIN has been provided.
              examples:
              - true
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the account holder on the donor service
                provider.
              examples:
              - '2017-07-21'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was canceled.
              examples:
              - '2021-01-21T19:39:53Z'
            completedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was completed.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the porting was created.
              examples:
              - '2021-01-21T19:12:28Z'
            declinedAttempts:
              type: integer
              description: The number of declined porting attempts so far.
              minimum: 0
              examples:
              - 0
            declinedCode:
              type:
              - string
              - 'null'
              description: The code reason for the declined porting.
              examples:
              - portingPhoneNumberPortProtected
            declinedMessage:
              type:
              - string
              - 'null'
              description: The reason description for the declined porting.
              examples:
              - The phone number has port protection on the provider.
            donorProvider:
              anyOf:
              - type: object
                title: ServiceProvider
                properties:
                  object:
                    type: string
                    const: serviceProvider
                    description: Type of object is always `serviceProvider`.
                  id:
                    type: string
                    description: Unique identifier for the service provider.
                    examples:
                    - svp_0SNlurA01K6GY5L0XJffY8
                  country:
                    type: string
                    format: ISO 3166-1 alpha-2
                    description: The ISO 3166-1 alpha-2 country code of the service
                      provider.
                    examples:
                    - US
                  name:
                    type: string
                    description: The name of the service provider, usually a brand
                      name.
                    examples:
                    - AT&T
                  recipientProviders:
                    type: array
                    default:
                    - p3
                    description: List of network providers IDs that can receive portings
                      from the service provider.
                    items:
                      type: string
                      examples:
                      - p3
                required:
                - object
                - id
                - country
                - name
                - recipientProviders
              - type: 'null'
              description: The service provider from whom the number is ported.
            donorProviderApproval:
              type:
              - boolean
              - 'null'
              description: Whether the donor provider has approved or not the porting.
              examples:
              - true
            expiredAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was expired.
              examples:
              - '2021-01-21T19:39:53Z'
            firstName:
              type:
              - string
              - 'null'
              description: The first name of the account holder on the donor service
                provider.
              examples:
              - Jerry
            lastDeclinedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last declined.
              examples:
              - '2021-01-21T19:31:13Z'
            lastName:
              type:
              - string
              - 'null'
              description: The last name of the account holder on the donor service
                provider.
              examples:
              - Seinfeld
            lastRequestedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the porting was last requested.
              examples:
              - '2021-01-21T19:22:31Z'
            phoneNumber:
              type: string
              format: E.164
              description: The phone number to port in E.164 string_format.
              examples:
              - "+19591234567"
            provider:
              type: string
              description: The ID of the recipient network provider.
              examples:
              - p9
            recipientProvider:
              type: object
              title: ServiceProvider
              description: The service provider to whom the number is ported.
              properties:
                object:
                  type: string
                  const: serviceProvider
                  description: Type of object is always `serviceProvider`.
                id:
                  type: string
                  description: Unique identifier for the service provider.
                  examples:
                  - svp_0SNlurA01K6GY5L0XJffY8
                country:
                  type: string
                  format: ISO 3166-1 alpha-2
                  description: The ISO 3166-1 alpha-2 country code of the service
                    provider.
                  examples:
                  - US
                name:
                  type: string
                  description: The name of the service provider, usually a brand name.
                  examples:
                  - AT&T
                recipientProviders:
                  type: array
                  default:
                  - p3
                  description: List of network providers IDs that can receive portings
                    from the service provider.
                  items:
                    type: string
                    examples:
                    - p3
              required:
              - object
              - id
              - country
              - name
              - recipientProviders
            required:
              type: array
              description: List of fields required for the porting to be processable.
                The fields depend on the donor and recipient providers.
              items:
                type: string
              examples:
              - - accountNumber
                - accountPin
                - address
                - birthday
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
            scheduledOn:
              type:
              - string
              - 'null'
              format: date
              description: |
                Date when the porting is scheduled to take effect.

                The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
              examples:
              - '2021-01-21'
            status:
              type: string
              enum:
              - draft
              - pending
              - informationRequired
              - requested
              - declined
              - completed
              - canceled
              - expired
              description: The current status of the porting.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier for the porting subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this porting is for.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - accountNumber
          - accountPinExists
          - address
          - behavior
          - billingPinExists
          - scheduledOn
          - birthday
          - declinedAttempts
          - declinedCode
          - declinedMessage
          - donorProvider
          - donorProviderApproval
          - firstName
          - lastName
          - phoneNumber
          - provider
          - recipientProvider
          - required
          - status
          - subscription
          - user
          - canceledAt
          - completedAt
          - createdAt
          - expiredAt
          - lastDeclinedAt
          - lastRequestedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.porting.updated
          description: Type is always `com.gigs.porting.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.project.created:
      type: object
      title: com.gigs.project.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Project
          description: A project is where all of the user, subscription, plan, device,
            and SIM information lives.
          properties:
            object:
              type: string
              const: project
              description: Type of object is always `project`.
            id:
              type: string
              pattern: "^[a-z][a-z0-9-]{1,28}[a-z0-9]$"
              description: Globally unique identifier for the project.
              examples:
              - gigs
            billing:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of billing.
                Present when the Billing API is enabled.
              properties:
                advanceInvoicingDays:
                  type:
                  - integer
                  - 'null'
                  description: Number of days before renewal when invoices are generated.
                    A value of `null` indicates that invoices are generated immediately
                    after the renewal.
                  examples:
                  - 7
                invoiceGracePeriodDays:
                  type: integer
                  description: Number of days after renewal that an invoice can remain
                    unpaid before it becomes overdue. After this period, the action
                    specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                invoiceOverdueDays:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `invoiceGracePeriodDays` instead.


                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                  deprecated: true
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended. A value of `null` indicates that the subscriptions are ended at the end of the period.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type: string
                  enum:
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency for the project use of billing. Must be a supported currency.
                  examples:
                  - USD
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                paymentBehavior:
                  type: string
                  enum:
                  - manual
                  - none
                  description: |
                    Determines how invoices are paid. It can have one of the following values:

                    - `manual`: Invoices are not automatically paid without explicit action.
                    - `none`: No payment is performed and invoices are marked as paid automatically.
                taxBehavior:
                  type: string
                  enum:
                  - exclusive
                  - inclusive
                  description: |
                    Determines whether taxes are included in the product price. It can have one of the following values:

                    - `exclusive`: Taxes are not included in the product price. The total amount is the sum of the product price and any applicable taxes.
                    - `inclusive`: Taxes are already included in the product price. The total amount is the product price and the taxes are deducted from it.
                recoveryFeePercentage:
                  type:
                  - number
                  - 'null'
                  description: |
                    The recovery fee percentage to be applied to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  maximum: 100
                  minimum: 0
                  examples:
                  - 10
                recoveryFeeAmount:
                  anyOf:
                  - type: object
                    title: Price
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  - type: 'null'
                  description: |
                    The recovery fee amount to be added to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  examples:
                  - amount: 150
                    currency: USD
              required:
              - advanceInvoicingDays
              - currency
              - invoiceGracePeriodDays
              - invoiceOverdueAction
              - invoiceOverdueDays
              - invoiceOverduePeriodDays
              - paymentBehavior
              - recoveryFeeAmount
              - recoveryFeePercentage
              - restrictBehavior
              - restoreBehavior
              - taxBehavior
            consent:
              type:
              - object
              - 'null'
              description: |
                Configuration parameters for the project's user consent collection. When absent, user consent is not checked or required.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                deliveryMethods:
                  type: array
                  description: List of available delivery methods for consent requests.
                  items:
                    type: string
                    enum:
                    - emailLink
                    - sms
            createdAt:
              type: string
              format: date-time
              description: Time when the project was created.
              examples:
              - '2021-01-21T19:32:13Z'
            image:
              type:
              - string
              - 'null'
              description: |
                Small-resolution project icon with an aspect ratio of `1:1`.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://a.gigscdn.net/p/gigs/icon.png
            legal:
              type:
              - object
              - 'null'
              description: The legal address for the company that manages the project.
              properties:
                name:
                  type: string
                  description: The company's legal name.
                  examples:
                  - Gigs Inc.
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: The second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - name
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            locales:
              type: array
              description: List of supported locales represented as [IETF language
                tags](https://en.wikipedia.org/wiki/IETF_language_tag), ordered by
                preference.
              items:
                type: string
              examples:
              - - en-US
            name:
              type: string
              description: A human-readable name for the project.
              examples:
              - Gigs Connect
            organization:
              type: object
              title: Organization
              properties:
                object:
                  type: string
                  const: organization
                  description: Type of object is always `organization`.
                id:
                  type: string
                  description: Unique identifier for the organization.
                  examples:
                  - org_0SNlurA04kOdemVEMVZQBF
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the organization was created.
                  examples:
                  - '2021-02-01T13:21:30Z'
                name:
                  type: string
                  description: Name for the organization.
                  examples:
                  - Gigs
              required:
              - object
              - id
              - name
              - createdAt
            payments:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of payments.
              properties:
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency of the project. Must be a supported currency.
                  examples:
                  - USD
                mode:
                  type: string
                  enum:
                  - live
                  - test
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use the root-level field `type` instead.


                    The mode in which the payments operate.
                  deprecated: true
              required:
              - currency
              - mode
            subscriptionOwner:
              type: string
              enum:
              - user
              - company
              description: Indicates which entity will be registered as the owner
                of the subscription with the providers. When `company` is selected
                the legal address associated with the project will be used for the
                registration.
            support:
              type:
              - object
              - 'null'
              description: Contact details for consumer support requests regarding
                the project.
              properties:
                email:
                  type:
                  - string
                  - 'null'
                  format: email
                  description: A publicly available email address for consumer support
                    requests regarding the project.
                  examples:
                  - support@gigs.com
                phoneNumber:
                  type:
                  - string
                  - 'null'
                  format: E.164
                  description: A publicly available phone number in E.164 format for
                    consumer support requests regarding the project.
                  examples:
                  - "+12345678900"
              required:
              - email
              - phoneNumber
            type:
              type: string
              enum:
              - live
              - test
              description: Indicates whether this is a live or test project. In live
                projects, subscriptions are invoiced to your organization, and any
                payments and taxes are real. The type cannot be changed after project
                creation.
              examples:
              - live
          required:
          - object
          - id
          - billing
          - consent
          - image
          - legal
          - locales
          - name
          - organization
          - payments
          - subscriptionOwner
          - support
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.project.created
          description: Type is always `com.gigs.project.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.project.deleted:
      type: object
      title: com.gigs.project.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Project
          description: A project is where all of the user, subscription, plan, device,
            and SIM information lives.
          properties:
            object:
              type: string
              const: project
              description: Type of object is always `project`.
            id:
              type: string
              pattern: "^[a-z][a-z0-9-]{1,28}[a-z0-9]$"
              description: Globally unique identifier for the project.
              examples:
              - gigs
            billing:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of billing.
                Present when the Billing API is enabled.
              properties:
                advanceInvoicingDays:
                  type:
                  - integer
                  - 'null'
                  description: Number of days before renewal when invoices are generated.
                    A value of `null` indicates that invoices are generated immediately
                    after the renewal.
                  examples:
                  - 7
                invoiceGracePeriodDays:
                  type: integer
                  description: Number of days after renewal that an invoice can remain
                    unpaid before it becomes overdue. After this period, the action
                    specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                invoiceOverdueDays:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `invoiceGracePeriodDays` instead.


                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                  deprecated: true
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended. A value of `null` indicates that the subscriptions are ended at the end of the period.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type: string
                  enum:
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency for the project use of billing. Must be a supported currency.
                  examples:
                  - USD
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                paymentBehavior:
                  type: string
                  enum:
                  - manual
                  - none
                  description: |
                    Determines how invoices are paid. It can have one of the following values:

                    - `manual`: Invoices are not automatically paid without explicit action.
                    - `none`: No payment is performed and invoices are marked as paid automatically.
                taxBehavior:
                  type: string
                  enum:
                  - exclusive
                  - inclusive
                  description: |
                    Determines whether taxes are included in the product price. It can have one of the following values:

                    - `exclusive`: Taxes are not included in the product price. The total amount is the sum of the product price and any applicable taxes.
                    - `inclusive`: Taxes are already included in the product price. The total amount is the product price and the taxes are deducted from it.
                recoveryFeePercentage:
                  type:
                  - number
                  - 'null'
                  description: |
                    The recovery fee percentage to be applied to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  maximum: 100
                  minimum: 0
                  examples:
                  - 10
                recoveryFeeAmount:
                  anyOf:
                  - type: object
                    title: Price
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  - type: 'null'
                  description: |
                    The recovery fee amount to be added to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  examples:
                  - amount: 150
                    currency: USD
              required:
              - advanceInvoicingDays
              - currency
              - invoiceGracePeriodDays
              - invoiceOverdueAction
              - invoiceOverdueDays
              - invoiceOverduePeriodDays
              - paymentBehavior
              - recoveryFeeAmount
              - recoveryFeePercentage
              - restrictBehavior
              - restoreBehavior
              - taxBehavior
            consent:
              type:
              - object
              - 'null'
              description: |
                Configuration parameters for the project's user consent collection. When absent, user consent is not checked or required.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                deliveryMethods:
                  type: array
                  description: List of available delivery methods for consent requests.
                  items:
                    type: string
                    enum:
                    - emailLink
                    - sms
            createdAt:
              type: string
              format: date-time
              description: Time when the project was created.
              examples:
              - '2021-01-21T19:32:13Z'
            image:
              type:
              - string
              - 'null'
              description: |
                Small-resolution project icon with an aspect ratio of `1:1`.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://a.gigscdn.net/p/gigs/icon.png
            legal:
              type:
              - object
              - 'null'
              description: The legal address for the company that manages the project.
              properties:
                name:
                  type: string
                  description: The company's legal name.
                  examples:
                  - Gigs Inc.
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: The second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - name
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            locales:
              type: array
              description: List of supported locales represented as [IETF language
                tags](https://en.wikipedia.org/wiki/IETF_language_tag), ordered by
                preference.
              items:
                type: string
              examples:
              - - en-US
            name:
              type: string
              description: A human-readable name for the project.
              examples:
              - Gigs Connect
            organization:
              type: object
              title: Organization
              properties:
                object:
                  type: string
                  const: organization
                  description: Type of object is always `organization`.
                id:
                  type: string
                  description: Unique identifier for the organization.
                  examples:
                  - org_0SNlurA04kOdemVEMVZQBF
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the organization was created.
                  examples:
                  - '2021-02-01T13:21:30Z'
                name:
                  type: string
                  description: Name for the organization.
                  examples:
                  - Gigs
              required:
              - object
              - id
              - name
              - createdAt
            payments:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of payments.
              properties:
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency of the project. Must be a supported currency.
                  examples:
                  - USD
                mode:
                  type: string
                  enum:
                  - live
                  - test
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use the root-level field `type` instead.


                    The mode in which the payments operate.
                  deprecated: true
              required:
              - currency
              - mode
            subscriptionOwner:
              type: string
              enum:
              - user
              - company
              description: Indicates which entity will be registered as the owner
                of the subscription with the providers. When `company` is selected
                the legal address associated with the project will be used for the
                registration.
            support:
              type:
              - object
              - 'null'
              description: Contact details for consumer support requests regarding
                the project.
              properties:
                email:
                  type:
                  - string
                  - 'null'
                  format: email
                  description: A publicly available email address for consumer support
                    requests regarding the project.
                  examples:
                  - support@gigs.com
                phoneNumber:
                  type:
                  - string
                  - 'null'
                  format: E.164
                  description: A publicly available phone number in E.164 format for
                    consumer support requests regarding the project.
                  examples:
                  - "+12345678900"
              required:
              - email
              - phoneNumber
            type:
              type: string
              enum:
              - live
              - test
              description: Indicates whether this is a live or test project. In live
                projects, subscriptions are invoiced to your organization, and any
                payments and taxes are real. The type cannot be changed after project
                creation.
              examples:
              - live
          required:
          - object
          - id
          - billing
          - consent
          - image
          - legal
          - locales
          - name
          - organization
          - payments
          - subscriptionOwner
          - support
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.project.deleted
          description: Type is always `com.gigs.project.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.project.updated:
      type: object
      title: com.gigs.project.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Project
          description: A project is where all of the user, subscription, plan, device,
            and SIM information lives.
          properties:
            object:
              type: string
              const: project
              description: Type of object is always `project`.
            id:
              type: string
              pattern: "^[a-z][a-z0-9-]{1,28}[a-z0-9]$"
              description: Globally unique identifier for the project.
              examples:
              - gigs
            billing:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of billing.
                Present when the Billing API is enabled.
              properties:
                advanceInvoicingDays:
                  type:
                  - integer
                  - 'null'
                  description: Number of days before renewal when invoices are generated.
                    A value of `null` indicates that invoices are generated immediately
                    after the renewal.
                  examples:
                  - 7
                invoiceGracePeriodDays:
                  type: integer
                  description: Number of days after renewal that an invoice can remain
                    unpaid before it becomes overdue. After this period, the action
                    specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                invoiceOverdueDays:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `invoiceGracePeriodDays` instead.


                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.
                  examples:
                  - 3
                  deprecated: true
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended. A value of `null` indicates that the subscriptions are ended at the end of the period.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type: string
                  enum:
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency for the project use of billing. Must be a supported currency.
                  examples:
                  - USD
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                paymentBehavior:
                  type: string
                  enum:
                  - manual
                  - none
                  description: |
                    Determines how invoices are paid. It can have one of the following values:

                    - `manual`: Invoices are not automatically paid without explicit action.
                    - `none`: No payment is performed and invoices are marked as paid automatically.
                taxBehavior:
                  type: string
                  enum:
                  - exclusive
                  - inclusive
                  description: |
                    Determines whether taxes are included in the product price. It can have one of the following values:

                    - `exclusive`: Taxes are not included in the product price. The total amount is the sum of the product price and any applicable taxes.
                    - `inclusive`: Taxes are already included in the product price. The total amount is the product price and the taxes are deducted from it.
                recoveryFeePercentage:
                  type:
                  - number
                  - 'null'
                  description: |
                    The recovery fee percentage to be applied to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  maximum: 100
                  minimum: 0
                  examples:
                  - 10
                recoveryFeeAmount:
                  anyOf:
                  - type: object
                    title: Price
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  - type: 'null'
                  description: |
                    The recovery fee amount to be added to invoices for local plans in the United States.
                    If both `recoveryFeePercentage` and `recoveryFeeAmount` are `null`, a default percentage will be used.
                    Note: `recoveryFeePercentage` and `recoveryFeeAmount` cannot both be present at the same time.
                  examples:
                  - amount: 150
                    currency: USD
              required:
              - advanceInvoicingDays
              - currency
              - invoiceGracePeriodDays
              - invoiceOverdueAction
              - invoiceOverdueDays
              - invoiceOverduePeriodDays
              - paymentBehavior
              - recoveryFeeAmount
              - recoveryFeePercentage
              - restrictBehavior
              - restoreBehavior
              - taxBehavior
            consent:
              type:
              - object
              - 'null'
              description: |
                Configuration parameters for the project's user consent collection. When absent, user consent is not checked or required.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                deliveryMethods:
                  type: array
                  description: List of available delivery methods for consent requests.
                  items:
                    type: string
                    enum:
                    - emailLink
                    - sms
            createdAt:
              type: string
              format: date-time
              description: Time when the project was created.
              examples:
              - '2021-01-21T19:32:13Z'
            image:
              type:
              - string
              - 'null'
              description: |
                Small-resolution project icon with an aspect ratio of `1:1`.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              examples:
              - https://a.gigscdn.net/p/gigs/icon.png
            legal:
              type:
              - object
              - 'null'
              description: The legal address for the company that manages the project.
              properties:
                name:
                  type: string
                  description: The company's legal name.
                  examples:
                  - Gigs Inc.
                city:
                  type: string
                  description: The city/municipality of the address.
                  examples:
                  - New York City
                country:
                  type: string
                  description: The ISO 3166-1 alpha-2 country code of the address.
                  examples:
                  - US
                line1:
                  type: string
                  description: The first line of the address, e.g. street and house
                    number.
                  examples:
                  - 129 West 81st Street
                line2:
                  type:
                  - string
                  - 'null'
                  description: The second line of the address, e.g. apartment number.
                  examples:
                  - Apartment 5
                postalCode:
                  type: string
                  description: The postal code of the address.
                  examples:
                  - '10024'
                state:
                  type:
                  - string
                  - 'null'
                  description: The state/province/region of the address.
                  examples:
                  - NY
              required:
              - name
              - city
              - country
              - line1
              - line2
              - postalCode
              - state
            locales:
              type: array
              description: List of supported locales represented as [IETF language
                tags](https://en.wikipedia.org/wiki/IETF_language_tag), ordered by
                preference.
              items:
                type: string
              examples:
              - - en-US
            name:
              type: string
              description: A human-readable name for the project.
              examples:
              - Gigs Connect
            organization:
              type: object
              title: Organization
              properties:
                object:
                  type: string
                  const: organization
                  description: Type of object is always `organization`.
                id:
                  type: string
                  description: Unique identifier for the organization.
                  examples:
                  - org_0SNlurA04kOdemVEMVZQBF
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the organization was created.
                  examples:
                  - '2021-02-01T13:21:30Z'
                name:
                  type: string
                  description: Name for the organization.
                  examples:
                  - Gigs
              required:
              - object
              - id
              - name
              - createdAt
            payments:
              type:
              - object
              - 'null'
              description: Configuration parameters for the project use of payments.
              properties:
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code representing the
                    currency of the project. Must be a supported currency.
                  examples:
                  - USD
                mode:
                  type: string
                  enum:
                  - live
                  - test
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use the root-level field `type` instead.


                    The mode in which the payments operate.
                  deprecated: true
              required:
              - currency
              - mode
            subscriptionOwner:
              type: string
              enum:
              - user
              - company
              description: Indicates which entity will be registered as the owner
                of the subscription with the providers. When `company` is selected
                the legal address associated with the project will be used for the
                registration.
            support:
              type:
              - object
              - 'null'
              description: Contact details for consumer support requests regarding
                the project.
              properties:
                email:
                  type:
                  - string
                  - 'null'
                  format: email
                  description: A publicly available email address for consumer support
                    requests regarding the project.
                  examples:
                  - support@gigs.com
                phoneNumber:
                  type:
                  - string
                  - 'null'
                  format: E.164
                  description: A publicly available phone number in E.164 format for
                    consumer support requests regarding the project.
                  examples:
                  - "+12345678900"
              required:
              - email
              - phoneNumber
            type:
              type: string
              enum:
              - live
              - test
              description: Indicates whether this is a live or test project. In live
                projects, subscriptions are invoiced to your organization, and any
                payments and taxes are real. The type cannot be changed after project
                creation.
              examples:
              - live
          required:
          - object
          - id
          - billing
          - consent
          - image
          - legal
          - locales
          - name
          - organization
          - payments
          - subscriptionOwner
          - support
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.project.updated
          description: Type is always `com.gigs.project.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.quote.created:
      type: object
      title: com.gigs.quote.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Quote
          description: Quotes provide a preview of the invoices, including taxes and
            fees, that will occur when creating a subscription or add-on.
          properties:
            object:
              type: string
              const: quote
              description: Type of object is always `quote`.
            id:
              type: string
              description: Unique identifier for the quote.
              examples:
              - quo_0SNlurA049MEWV2X9NicYieFQ4Kc
            address:
              type:
              - string
              - 'null'
              description: The unique identifier for the address that the taxes were
                quoted for. Present when quoting local plans.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            createdAt:
              type: string
              format: date-time
              description: Time when the quote was created.
              examples:
              - '2024-01-09T15:00:51Z'
            discount:
              type: object
              title: Price
              description: The total discount applied. This is the sum of the discounts
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            expiredAt:
              type: string
              format: date-time
              description: The timestamp indicating when the quote expires. Set to
                2 hours after the quote's creation time.
              examples:
              - '2024-02-01T11:12:13Z'
            fees:
              type: array
              description: The fees for the quote.
              items:
                type: object
                properties:
                  amount:
                    type: object
                    title: Price
                    description: The amount of the fee.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  name:
                    type: string
                    description: The name of the fee.
                    examples:
                    - Recovery Fee
                  type:
                    type: string
                    const: recoveryFee
                    description: The type of the fee.
                required:
                - amount
                - name
                - type
            lineItems:
              type: array
              description: The line items that make up the quote.
              items:
                type: object
                title: QuoteLineItem
                properties:
                  addon:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the addon this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                  creditedPlan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the credited plan this
                      line item refers to, if any. The price of the credited plan
                      is used to adjust the final plan price when quoting immediate
                      subscription changes. Only present for line items generated
                      as part of a subscription change quote.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  discount:
                    type: object
                    title: Price
                    description: The discount applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  plan:
                    type:
                    - string
                    - 'null'
                    description: The unique identifier for the plan this line item
                      refers to, if any. Either plan or addon will be present, but
                      not both.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  subtotal:
                    type: object
                    title: Price
                    description: The price of the line item before any discounts or
                      taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  tax:
                    type: object
                    title: Price
                    description: The total amount of taxes applied to this line item.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  taxes:
                    type: array
                    description: The taxes applied to this line item.
                    items:
                      type: object
                      title: QuoteTax
                      properties:
                        amount:
                          type: object
                          title: Price
                          description: The amount of the tax.
                          properties:
                            amount:
                              type: integer
                              description: The price amount in the currency's minor
                                unit, e.g. "cents" for many currencies.
                              minimum: 0
                              examples:
                              - 999
                            currency:
                              type: string
                              format: ISO 4217
                              description: Three-letter ISO 4217 currency code. Must
                                be a supported currency.
                              examples:
                              - USD
                          required:
                          - amount
                          - currency
                        inclusive:
                          type: boolean
                          description: Whether the tax is included in the product
                            price or not.
                          examples:
                          - false
                        jurisdiction:
                          type:
                          - string
                          - 'null'
                          description: The optional jurisdiction of the tax.
                          examples:
                          - Federal
                        name:
                          type: string
                          description: The name of the tax.
                          examples:
                          - Federal TRS Fund
                      required:
                      - amount
                      - inclusive
                      - jurisdiction
                      - name
                  total:
                    type: object
                    title: Price
                    description: The total amount for this line item after all discounts
                      or taxes are applied.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                required:
                - addon
                - creditedPlan
                - discount
                - plan
                - subtotal
                - tax
                - taxes
                - total
            reason:
              type: string
              enum:
              - other
              - subscriptionChange
              - subscriptionCreation
              description: |
                The reason this quote was created. It can have one of the following values:

                  - `subscriptionCreation`: The quote is for a new subscription.
                  - `subscriptionChange`: The quote is for a subscription change (e.g. plan upgrade).
                  - `other`: The quote is not related to a subscription but due an e.g. one-time addon.
            subtotal:
              type: object
              title: Price
              description: The total amount before any discounts, taxes or fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            tax:
              type: object
              title: Price
              description: The total amount of taxes. This is the sum of the taxes
                of each line item.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            taxExemptionReason:
              type:
              - string
              - 'null'
              enum:
              -
              - calculationFailed
              - fullyDiscounted
              - inclusiveTaxExceedsPrice
              - userExempted
              description: |
                The reason for the taxes not being calculated, if any. It can have one of the following values:

                  - `calculationFailed`: The tax calculation failed for an unspecified reason.
                  - `inclusiveTaxExceedsPrice`: The calculated tax is too large to be included in the price.
                  - `fullyDiscounted`: The quote is fully discounted due to a voucher or a free product.
                  - `userExempted`: The user is marked as exempted from taxes.
              examples:
              - calculationFailed
            total:
              type: object
              title: Price
              description: The total amount after all discounts, taxes and fees are
                applied.
              properties:
                amount:
                  type: integer
                  description: The price amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 0
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            user:
              type: string
              description: The unique identifier for the user that this quote belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            voucher:
              type:
              - string
              - 'null'
              description: The unique identifier for the voucher applied to the quote,
                if any.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
          required:
          - object
          - id
          - address
          - discount
          - fees
          - lineItems
          - reason
          - subtotal
          - tax
          - taxExemptionReason
          - total
          - user
          - voucher
          - createdAt
          - expiredAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.quote.created
          description: Type is always `com.gigs.quote.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.activated:
      type: object
      title: com.gigs.sim.activated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.activated
          description: Type is always `com.gigs.sim.activated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.created:
      type: object
      title: com.gigs.sim.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.created
          description: Type is always `com.gigs.sim.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.deactivated:
      type: object
      title: com.gigs.sim.deactivated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.deactivated
          description: Type is always `com.gigs.sim.deactivated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.deleted:
      type: object
      title: com.gigs.sim.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.deleted
          description: Type is always `com.gigs.sim.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.retired:
      type: object
      title: com.gigs.sim.retired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.retired
          description: Type is always `com.gigs.sim.retired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.sim.updated:
      type: object
      title: com.gigs.sim.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Sim
          description: 'A SIM is a unique card that identifies itself to a specific
            mobile network and provides voice, text, and data connectivity to a user’s
            device. There are two types of available SIMs: eSIM and pSIM. eSIMs can
            be activated and installed instantly on any eSIM compatible device, pSIMs
            (physical SIMs) must be provided to the user or installed into the device
            beforehand.'
          properties:
            object:
              type: string
              const: sim
              description: Type of object is always `sim`.
            id:
              type: string
              description: Unique identifier for the SIM.
              examples:
              - sim_0SNlurA049MEWV1BAAmWZULA4lf6
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            createdAt:
              type: string
              format: date-time
              description: Time when the SIM was created.
              examples:
              - '2021-01-21T19:38:34Z'
            iccid:
              type: string
              pattern: "^[0-9]{19,20}$"
              description: The ICCID (integrated circuit card identifier) associated
                with the SIM.
              examples:
              - '89883070000007537119'
            provider:
              type: string
              description: The ID of the network provider of the SIM.
              examples:
              - p9
            status:
              type: string
              enum:
              - inactive
              - active
              - retired
              description: The status of the SIM. Can be `active` or `inactive`.
            type:
              type: string
              enum:
              - eSIM
              - pSIM
              description: The type of the SIM. Can be `eSIM` or `pSIM`.
          required:
          - object
          - id
          - metadata
          - iccid
          - provider
          - status
          - type
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.sim.updated
          description: Type is always `com.gigs.sim.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.activated:
      type: object
      title: com.gigs.subscription.activated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.activated
          description: Type is always `com.gigs.subscription.activated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionAddon.activated:
      type: object
      title: com.gigs.subscriptionAddon.activated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionAddon
          description: Subscription add-ons are features or top-ups that extend the
            functionality offered to the end user through their subscription, as defined
            by the associated add-on.
          properties:
            object:
              type: string
              const: subscriptionAddon
              description: Type of object is always `subscriptionAddon`.
            id:
              type: string
              description: Unique identifier for the subscription add-on.
              examples:
              - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was activated.
              examples:
              - '2021-01-15T12:36:57Z'
            addon:
              type: object
              title: Add-on
              description: The add-on associated to the subscription add-on.
              properties:
                object:
                  type: string
                  const: addon
                  description: Type of object is always `addon`.
                id:
                  type: string
                  description: Unique identifier for the add-on.
                  examples:
                  - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                activationTrigger:
                  type: string
                  enum:
                  - creation
                  - networkLatch
                  - usageStarted
                  description: |
                    Indicates when a subscription add-on will take effect.

                    - `creation`: As soon as it is created. The user does not need to take any further action.
                    - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                    - `usageStarted`: When the user starts using add-on allowance on their device.
                  examples:
                  - creation
                allowances:
                  type: object
                  title: Allowances
                  description: The allowances included in the add-on.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  anyOf:
                  - type: object
                    title: Coverage
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  - type: 'null'
                  description: The geographic coverage of the add-on. A value of `null`
                    indicates that coverage is not applicable for this add-on.
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the add-on was created .
                  examples:
                  - '2021-01-21T19:12:28Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The description of the add-on.
                  examples:
                  - Disable international roaming.
                name:
                  type: string
                  description: Name for the add-on.
                  examples:
                  - 1GB Data Top-up
                plans:
                  type: array
                  description: The plans this add-on is compatible with.
                  items:
                    type: string
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                price:
                  type: object
                  title: Price
                  description: The price of the add-on.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this add-on.
                  examples:
                  - p5
                recurrenceType:
                  type: string
                  enum:
                  - oneTime
                  - recurring
                  description: The recurrence type the add-on.
                  examples:
                  - oneTime
                status:
                  type: string
                  enum:
                  - draft
                  - available
                  - archived
                  description: The current status of the add-on.
                type:
                  type: string
                  enum:
                  - topUp
                  - other
                  description: The type of the add-on.
                  examples:
                  - topUp
                validity:
                  type:
                  - object
                  - 'null'
                  description: |-
                    The validity period of the add-on. When the add-on is activated, it will expire after this
                            duration. Not all add-ons have a validity period.
                  properties:
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the add-on, either `day` or `month`.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property).
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `sms`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - activationTrigger
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - name
              - plans
              - price
              - provider
              - recurrenceType
              - sms
              - smsUnit
              - status
              - type
              - validity
              - voice
              - voiceUnit
              - createdAt
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was canceled.
              examples:
              - '2021-01-22T19:39:53Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was created.
              examples:
              - '2021-01-15T12:30:28Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription add-on period. Only present for active
                subscription add-ons.
            endedAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was ended.
              examples:
              - '2021-01-30T23:12:28Z'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - ended
              description: The current status of the subscription add-on.
            subscription:
              type: string
              description: Unique identifier of the subscription the add-on applies
                to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier of the user the subscription add-on belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - addon
          - currentPeriod
          - status
          - subscription
          - user
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionAddon.activated
          description: Type is always `com.gigs.subscriptionAddon.activated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionAddon.created:
      type: object
      title: com.gigs.subscriptionAddon.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionAddon
          description: Subscription add-ons are features or top-ups that extend the
            functionality offered to the end user through their subscription, as defined
            by the associated add-on.
          properties:
            object:
              type: string
              const: subscriptionAddon
              description: Type of object is always `subscriptionAddon`.
            id:
              type: string
              description: Unique identifier for the subscription add-on.
              examples:
              - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was activated.
              examples:
              - '2021-01-15T12:36:57Z'
            addon:
              type: object
              title: Add-on
              description: The add-on associated to the subscription add-on.
              properties:
                object:
                  type: string
                  const: addon
                  description: Type of object is always `addon`.
                id:
                  type: string
                  description: Unique identifier for the add-on.
                  examples:
                  - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                activationTrigger:
                  type: string
                  enum:
                  - creation
                  - networkLatch
                  - usageStarted
                  description: |
                    Indicates when a subscription add-on will take effect.

                    - `creation`: As soon as it is created. The user does not need to take any further action.
                    - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                    - `usageStarted`: When the user starts using add-on allowance on their device.
                  examples:
                  - creation
                allowances:
                  type: object
                  title: Allowances
                  description: The allowances included in the add-on.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  anyOf:
                  - type: object
                    title: Coverage
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  - type: 'null'
                  description: The geographic coverage of the add-on. A value of `null`
                    indicates that coverage is not applicable for this add-on.
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the add-on was created .
                  examples:
                  - '2021-01-21T19:12:28Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The description of the add-on.
                  examples:
                  - Disable international roaming.
                name:
                  type: string
                  description: Name for the add-on.
                  examples:
                  - 1GB Data Top-up
                plans:
                  type: array
                  description: The plans this add-on is compatible with.
                  items:
                    type: string
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                price:
                  type: object
                  title: Price
                  description: The price of the add-on.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this add-on.
                  examples:
                  - p5
                recurrenceType:
                  type: string
                  enum:
                  - oneTime
                  - recurring
                  description: The recurrence type the add-on.
                  examples:
                  - oneTime
                status:
                  type: string
                  enum:
                  - draft
                  - available
                  - archived
                  description: The current status of the add-on.
                type:
                  type: string
                  enum:
                  - topUp
                  - other
                  description: The type of the add-on.
                  examples:
                  - topUp
                validity:
                  type:
                  - object
                  - 'null'
                  description: |-
                    The validity period of the add-on. When the add-on is activated, it will expire after this
                            duration. Not all add-ons have a validity period.
                  properties:
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the add-on, either `day` or `month`.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property).
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `sms`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - activationTrigger
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - name
              - plans
              - price
              - provider
              - recurrenceType
              - sms
              - smsUnit
              - status
              - type
              - validity
              - voice
              - voiceUnit
              - createdAt
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was canceled.
              examples:
              - '2021-01-22T19:39:53Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was created.
              examples:
              - '2021-01-15T12:30:28Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription add-on period. Only present for active
                subscription add-ons.
            endedAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was ended.
              examples:
              - '2021-01-30T23:12:28Z'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - ended
              description: The current status of the subscription add-on.
            subscription:
              type: string
              description: Unique identifier of the subscription the add-on applies
                to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier of the user the subscription add-on belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - addon
          - currentPeriod
          - status
          - subscription
          - user
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionAddon.created
          description: Type is always `com.gigs.subscriptionAddon.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionAddon.ended:
      type: object
      title: com.gigs.subscriptionAddon.ended
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionAddon
          description: Subscription add-ons are features or top-ups that extend the
            functionality offered to the end user through their subscription, as defined
            by the associated add-on.
          properties:
            object:
              type: string
              const: subscriptionAddon
              description: Type of object is always `subscriptionAddon`.
            id:
              type: string
              description: Unique identifier for the subscription add-on.
              examples:
              - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was activated.
              examples:
              - '2021-01-15T12:36:57Z'
            addon:
              type: object
              title: Add-on
              description: The add-on associated to the subscription add-on.
              properties:
                object:
                  type: string
                  const: addon
                  description: Type of object is always `addon`.
                id:
                  type: string
                  description: Unique identifier for the add-on.
                  examples:
                  - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                activationTrigger:
                  type: string
                  enum:
                  - creation
                  - networkLatch
                  - usageStarted
                  description: |
                    Indicates when a subscription add-on will take effect.

                    - `creation`: As soon as it is created. The user does not need to take any further action.
                    - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                    - `usageStarted`: When the user starts using add-on allowance on their device.
                  examples:
                  - creation
                allowances:
                  type: object
                  title: Allowances
                  description: The allowances included in the add-on.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  anyOf:
                  - type: object
                    title: Coverage
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  - type: 'null'
                  description: The geographic coverage of the add-on. A value of `null`
                    indicates that coverage is not applicable for this add-on.
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the add-on was created .
                  examples:
                  - '2021-01-21T19:12:28Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The description of the add-on.
                  examples:
                  - Disable international roaming.
                name:
                  type: string
                  description: Name for the add-on.
                  examples:
                  - 1GB Data Top-up
                plans:
                  type: array
                  description: The plans this add-on is compatible with.
                  items:
                    type: string
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                price:
                  type: object
                  title: Price
                  description: The price of the add-on.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this add-on.
                  examples:
                  - p5
                recurrenceType:
                  type: string
                  enum:
                  - oneTime
                  - recurring
                  description: The recurrence type the add-on.
                  examples:
                  - oneTime
                status:
                  type: string
                  enum:
                  - draft
                  - available
                  - archived
                  description: The current status of the add-on.
                type:
                  type: string
                  enum:
                  - topUp
                  - other
                  description: The type of the add-on.
                  examples:
                  - topUp
                validity:
                  type:
                  - object
                  - 'null'
                  description: |-
                    The validity period of the add-on. When the add-on is activated, it will expire after this
                            duration. Not all add-ons have a validity period.
                  properties:
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the add-on, either `day` or `month`.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property).
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `sms`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - activationTrigger
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - name
              - plans
              - price
              - provider
              - recurrenceType
              - sms
              - smsUnit
              - status
              - type
              - validity
              - voice
              - voiceUnit
              - createdAt
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was canceled.
              examples:
              - '2021-01-22T19:39:53Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was created.
              examples:
              - '2021-01-15T12:30:28Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription add-on period. Only present for active
                subscription add-ons.
            endedAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was ended.
              examples:
              - '2021-01-30T23:12:28Z'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - ended
              description: The current status of the subscription add-on.
            subscription:
              type: string
              description: Unique identifier of the subscription the add-on applies
                to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier of the user the subscription add-on belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - addon
          - currentPeriod
          - status
          - subscription
          - user
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionAddon.ended
          description: Type is always `com.gigs.subscriptionAddon.ended`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionAddon.resumed:
      type: object
      title: com.gigs.subscriptionAddon.resumed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionAddon
          description: Subscription add-ons are features or top-ups that extend the
            functionality offered to the end user through their subscription, as defined
            by the associated add-on.
          properties:
            object:
              type: string
              const: subscriptionAddon
              description: Type of object is always `subscriptionAddon`.
            id:
              type: string
              description: Unique identifier for the subscription add-on.
              examples:
              - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was activated.
              examples:
              - '2021-01-15T12:36:57Z'
            addon:
              type: object
              title: Add-on
              description: The add-on associated to the subscription add-on.
              properties:
                object:
                  type: string
                  const: addon
                  description: Type of object is always `addon`.
                id:
                  type: string
                  description: Unique identifier for the add-on.
                  examples:
                  - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                activationTrigger:
                  type: string
                  enum:
                  - creation
                  - networkLatch
                  - usageStarted
                  description: |
                    Indicates when a subscription add-on will take effect.

                    - `creation`: As soon as it is created. The user does not need to take any further action.
                    - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                    - `usageStarted`: When the user starts using add-on allowance on their device.
                  examples:
                  - creation
                allowances:
                  type: object
                  title: Allowances
                  description: The allowances included in the add-on.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  anyOf:
                  - type: object
                    title: Coverage
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  - type: 'null'
                  description: The geographic coverage of the add-on. A value of `null`
                    indicates that coverage is not applicable for this add-on.
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the add-on was created .
                  examples:
                  - '2021-01-21T19:12:28Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The description of the add-on.
                  examples:
                  - Disable international roaming.
                name:
                  type: string
                  description: Name for the add-on.
                  examples:
                  - 1GB Data Top-up
                plans:
                  type: array
                  description: The plans this add-on is compatible with.
                  items:
                    type: string
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                price:
                  type: object
                  title: Price
                  description: The price of the add-on.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this add-on.
                  examples:
                  - p5
                recurrenceType:
                  type: string
                  enum:
                  - oneTime
                  - recurring
                  description: The recurrence type the add-on.
                  examples:
                  - oneTime
                status:
                  type: string
                  enum:
                  - draft
                  - available
                  - archived
                  description: The current status of the add-on.
                type:
                  type: string
                  enum:
                  - topUp
                  - other
                  description: The type of the add-on.
                  examples:
                  - topUp
                validity:
                  type:
                  - object
                  - 'null'
                  description: |-
                    The validity period of the add-on. When the add-on is activated, it will expire after this
                            duration. Not all add-ons have a validity period.
                  properties:
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the add-on, either `day` or `month`.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property).
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `sms`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - activationTrigger
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - name
              - plans
              - price
              - provider
              - recurrenceType
              - sms
              - smsUnit
              - status
              - type
              - validity
              - voice
              - voiceUnit
              - createdAt
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was canceled.
              examples:
              - '2021-01-22T19:39:53Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was created.
              examples:
              - '2021-01-15T12:30:28Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription add-on period. Only present for active
                subscription add-ons.
            endedAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was ended.
              examples:
              - '2021-01-30T23:12:28Z'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - ended
              description: The current status of the subscription add-on.
            subscription:
              type: string
              description: Unique identifier of the subscription the add-on applies
                to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier of the user the subscription add-on belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - addon
          - currentPeriod
          - status
          - subscription
          - user
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionAddon.resumed
          description: Type is always `com.gigs.subscriptionAddon.resumed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionAddon.updated:
      type: object
      title: com.gigs.subscriptionAddon.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionAddon
          description: Subscription add-ons are features or top-ups that extend the
            functionality offered to the end user through their subscription, as defined
            by the associated add-on.
          properties:
            object:
              type: string
              const: subscriptionAddon
              description: Type of object is always `subscriptionAddon`.
            id:
              type: string
              description: Unique identifier for the subscription add-on.
              examples:
              - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was activated.
              examples:
              - '2021-01-15T12:36:57Z'
            addon:
              type: object
              title: Add-on
              description: The add-on associated to the subscription add-on.
              properties:
                object:
                  type: string
                  const: addon
                  description: Type of object is always `addon`.
                id:
                  type: string
                  description: Unique identifier for the add-on.
                  examples:
                  - add_0SNlurA049MEWV4VxLfwJc7PJtHc
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                activationTrigger:
                  type: string
                  enum:
                  - creation
                  - networkLatch
                  - usageStarted
                  description: |
                    Indicates when a subscription add-on will take effect.

                    - `creation`: As soon as it is created. The user does not need to take any further action.
                    - `networkLatch`: When the user's data session ends, which can be forced by power cycling the device.
                    - `usageStarted`: When the user starts using add-on allowance on their device.
                  examples:
                  - creation
                allowances:
                  type: object
                  title: Allowances
                  description: The allowances included in the add-on.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  anyOf:
                  - type: object
                    title: Coverage
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  - type: 'null'
                  description: The geographic coverage of the add-on. A value of `null`
                    indicates that coverage is not applicable for this add-on.
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the add-on was created .
                  examples:
                  - '2021-01-21T19:12:28Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The description of the add-on.
                  examples:
                  - Disable international roaming.
                name:
                  type: string
                  description: Name for the add-on.
                  examples:
                  - 1GB Data Top-up
                plans:
                  type: array
                  description: The plans this add-on is compatible with.
                  items:
                    type: string
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                price:
                  type: object
                  title: Price
                  description: The price of the add-on.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this add-on.
                  examples:
                  - p5
                recurrenceType:
                  type: string
                  enum:
                  - oneTime
                  - recurring
                  description: The recurrence type the add-on.
                  examples:
                  - oneTime
                status:
                  type: string
                  enum:
                  - draft
                  - available
                  - archived
                  description: The current status of the add-on.
                type:
                  type: string
                  enum:
                  - topUp
                  - other
                  description: The type of the add-on.
                  examples:
                  - topUp
                validity:
                  type:
                  - object
                  - 'null'
                  description: |-
                    The validity period of the add-on. When the add-on is activated, it will expire after this
                            duration. Not all add-ons have a validity period.
                  properties:
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the add-on, either `day` or `month`.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property).
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this add-on. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this add-on. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `sms`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice call allowance in seconds included in this add-on. A value of `-1` indicates unlimited voice calls.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - activationTrigger
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - name
              - plans
              - price
              - provider
              - recurrenceType
              - sms
              - smsUnit
              - status
              - type
              - validity
              - voice
              - voiceUnit
              - createdAt
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription add-on was canceled.
              examples:
              - '2021-01-22T19:39:53Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was created.
              examples:
              - '2021-01-15T12:30:28Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription add-on period. Only present for active
                subscription add-ons.
            endedAt:
              type: string
              format: date-time
              description: Time when the subscription add-on was ended.
              examples:
              - '2021-01-30T23:12:28Z'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - ended
              description: The current status of the subscription add-on.
            subscription:
              type: string
              description: Unique identifier of the subscription the add-on applies
                to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier of the user the subscription add-on belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - addon
          - currentPeriod
          - status
          - subscription
          - user
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionAddon.updated
          description: Type is always `com.gigs.subscriptionAddon.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.canceled:
      type: object
      title: com.gigs.subscription.canceled
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.canceled
          description: Type is always `com.gigs.subscription.canceled`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.applied:
      type: object
      title: com.gigs.subscriptionChange.applied
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.applied
          description: Type is always `com.gigs.subscriptionChange.applied`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.created:
      type: object
      title: com.gigs.subscriptionChange.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.created
          description: Type is always `com.gigs.subscriptionChange.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.deleted:
      type: object
      title: com.gigs.subscriptionChange.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.deleted
          description: Type is always `com.gigs.subscriptionChange.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.failed:
      type: object
      title: com.gigs.subscriptionChange.failed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.failed
          description: Type is always `com.gigs.subscriptionChange.failed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.pending:
      type: object
      title: com.gigs.subscriptionChange.pending
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.pending
          description: Type is always `com.gigs.subscriptionChange.pending`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscriptionChange.updated:
      type: object
      title: com.gigs.subscriptionChange.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: SubscriptionChange
          description: Any change to a user’s subscription, such as swapping a SIM,
            or upgrading or downgrading a subscription.
          properties:
            object:
              type: string
              const: subscriptionChange
              description: Type of object is always `subscriptionChange`.
            id:
              type: string
              description: Unique identifier for the subscription change.
              examples:
              - sch_0SNlurA049MEWV3bE0SMtbIEJApp
            appliedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription change was applied.
              examples:
              - '2021-01-21T19:36:57Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription change was created.
              examples:
              - '2021-01-21T19:12:28Z'
            failureCode:
              type:
              - string
              - 'null'
              description: An error code indicating the reason for a failed subscription
                change.
              examples:
              - consentNotGiven
            plan:
              anyOf:
              - type: object
                title: Plan
                description: Plans define the network options and parameters offered
                  to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                  (data, sms, voice) and limits are configurable, and Gigs will work
                  with you to find the best balance for your users.
                properties:
                  object:
                    type: string
                    const: plan
                    description: Type of object is always `plan`.
                  id:
                    type: string
                    description: Unique identifier for the plan.
                    examples:
                    - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  allowances:
                    type: object
                    title: Allowances
                    description: Usage allowances included in the plan - i.e. how
                      many bytes of data, voice minutes & sms messages the user has
                      access to.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The data allowance in bytes. A value of `null`
                          indicates unlimited data.
                        examples:
                        - 10000000000
                      voiceSeconds:
                        type:
                        - integer
                        - 'null'
                        description: The voice call allowance in seconds. A value
                          of `null` indicates unlimited calls.
                        examples:
                        - 30000
                      smsMessages:
                        type:
                        - integer
                        - 'null'
                        description: The SMS allowance in messages. A value of `null`
                          indicates unlimited SMS.
                        examples:
                        - 100
                    required:
                    - dataBytes
                    - voiceSeconds
                    - smsMessages
                  coverage:
                    type: object
                    title: Coverage
                    description: The geographic coverage of the plan.
                    properties:
                      object:
                        type: string
                        const: coverage
                        description: Type of object is always `coverage`.
                      id:
                        type: string
                        description: Unique identifier for the coverage configuration.
                        examples:
                        - de
                      countries:
                        type: array
                        description: List of countries in ISO 3166-1 alpha-2 format
                          covered by this coverage configuration.
                        items:
                          type: string
                          format: ISO 3166-1 alpha-2
                          examples:
                          - DE
                        examples:
                        - - DE
                          - FR
                          - US
                      name:
                        type: string
                        description: A human-readable identifier of the coverage configuration,
                          might not be unique.
                        examples:
                        - Europe
                    required:
                    - object
                    - id
                    - countries
                    - name
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the plan was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  description:
                    type:
                    - string
                    - 'null'
                    description: The plan's description, meant to be displayable to
                      the users.
                    examples:
                    - A data plan you will love! Operates in most countries of the
                      world.
                  image:
                    type:
                    - string
                    - 'null'
                    format: url
                    description: The plan's image, meant to be displayable to the
                      users.
                    examples:
                    - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                  limits:
                    type: object
                    title: Limits
                    description: Usage limits for the plan - i.e. the maximum available
                      bandwidth, fair-use data limits and throttling threshold.
                    properties:
                      dataBytes:
                        type:
                        - integer
                        - 'null'
                        description: The maximum amount of data that can be used in
                          bytes. A value of `null` indicates unlimited data.
                        examples:
                        - 100000000000
                      bandwidthBitsPerSecond:
                        type:
                        - integer
                        - 'null'
                        description: The maximum bandwidth in bits per second. A value
                          of `null` indicates the maximum bandwidth this network allows.
                        examples:
                        - 100000000
                      throttling:
                        type:
                        - object
                        - 'null'
                        description: The throttling configuration for the plan, if
                          any.
                        properties:
                          thresholdBytes:
                            type: integer
                            description: The threshold in bytes at which throttling
                              will be applied.
                            examples:
                            - 10000000000
                          bandwidthBitsPerSecond:
                            type: integer
                            description: The bandwidth in bits per second that the
                              plan will be throttled to.
                            examples:
                            - 512000
                        required:
                        - thresholdBytes
                        - bandwidthBitsPerSecond
                    required:
                    - dataBytes
                    - bandwidthBitsPerSecond
                    - throttling
                  name:
                    type: string
                    description: The plan's name, meant to be displayable to the users.
                    examples:
                    - Gigs Global
                  price:
                    type: object
                    title: Price
                    description: The price of the plan.
                    properties:
                      amount:
                        type: integer
                        description: The price amount in the currency's minor unit,
                          e.g. "cents" for many currencies.
                        minimum: 0
                        examples:
                        - 999
                      currency:
                        type: string
                        format: ISO 4217
                        description: Three-letter ISO 4217 currency code. Must be
                          a supported currency.
                        examples:
                        - USD
                    required:
                    - amount
                    - currency
                  provider:
                    type: string
                    description: The ID of the network provider supported by this
                      plan.
                    examples:
                    - p5
                  requirements:
                    type: object
                    description: Required information that must be collected from
                      the user in order to create a subscription with this plan.
                    properties:
                      address:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The address requirements that must be fulfilled
                          before a user may purchase a subscription.
                        examples:
                        - present
                      device:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The device requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.birthday:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user birthday requirements that must be fulfilled
                          before a user may purchase a subscription.
                      user.fullName:
                        type: string
                        enum:
                        - none
                        - present
                        - verified
                        description: The user full name requirements that must be
                          fulfilled before a user may purchase a subscription.
                        examples:
                        - present
                    required:
                    - address
                    - device
                    - user.birthday
                    - user.fullName
                  simTypes:
                    type: array
                    description: List of SIM types supported by this plan. Can be
                      `eSIM`, `pSIM`, or both.
                    items:
                      type: string
                      enum:
                      - eSIM
                      - pSIM
                    examples:
                    - - eSIM
                      - pSIM
                  status:
                    type: string
                    enum:
                    - available
                    - archived
                    - pending
                    - draft
                  validity:
                    type: object
                    title: Validity
                    description: Plan validity information - i.e. subscription period
                      length, and the minimum number of periods before the plan can
                      be ended.
                    properties:
                      minimumPeriods:
                        type: integer
                        description: The minimum number of subscription periods that
                          the plan must be renewed.
                        minimum: 0
                        examples:
                        - 12
                      type:
                        type: string
                        enum:
                        - recurring
                        - oneTime
                        description: The validity type of this plan.
                      unit:
                        type: string
                        enum:
                        - day
                        - month
                        description: The time unit of the subscription period.
                      value:
                        type: integer
                        description: The amount of units (specified in the `unit`
                          property) in each subscription period.
                        minimum: 1
                        examples:
                        - 7
                    required:
                    - minimumPeriods
                    - type
                    - unit
                    - value
                  data:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                    examples:
                    - 10000000000
                    deprecated: true
                  dataUnit:
                    type: string
                    const: byte
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the data value is always `byte`.
                    deprecated: true
                  sms:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                    examples:
                    - 100
                    deprecated: true
                  smsUnit:
                    type: string
                    const: message
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the sms value is always `message`.
                    deprecated: true
                  voice:
                    type: integer
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                    examples:
                    - 30000
                    deprecated: true
                  voiceUnit:
                    type: string
                    const: second
                    description: |-
                      <!-- theme: warning -->
                      > #### Deprecated
                      >
                      > This property is deprecated and will be removed in the future.
                      > Use `allowances` instead.


                      The unit of the voice value is always `second`.
                    deprecated: true
                required:
                - object
                - id
                - metadata
                - allowances
                - coverage
                - data
                - dataUnit
                - description
                - image
                - limits
                - name
                - price
                - provider
                - requirements
                - simTypes
                - sms
                - smsUnit
                - status
                - validity
                - voice
                - voiceUnit
                - createdAt
              - type: 'null'
              description: The plan to which the subscription should be changed.
            requestedChange:
              type: object
              description: |
                Object with the requested changes.

                <!-- theme: info -->
                > #### Preview
                >
                > This property is currently in preview and might change in the future.
                >
                > We’re excited to hear your feedback and ideas. Please send an email
                > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              properties:
                plan:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target plan, to which the
                    subscription should be changed. The new plan must have the same
                    type of validity as the one it's replacing. E.g. a `oneTime` plan
                    cannot be replaced by a `recurring` one. If the new plan's validity
                    has a different `unit` or `value` than the plan it's replacing,
                    then the change must be scheduled for the next renewal. See property
                    `"when"` for more information about scheduling options for subscription
                    change.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                sim:
                  type:
                  - string
                  - 'null'
                  description: Unique identifier of the target SIM, to which the subscription
                    should be changed. Can also be set to "auto", in which case an
                    eSIM will be automatically allocated.
                  examples:
                  - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                when:
                  type: string
                  enum:
                  - now
                  - renewal
                  description: When the change should take effect. If set to `"now"`,
                    the change will take effect immediately. If set to `"renewal"`,
                    the change will instead take effect at the next subscription renewal
                    date. Plan changes can always happen on `"renewal"`, but only
                    selected network providers allow `"now"` changes. SIM changes
                    can only happen `"now"`.
                  examples:
                  - renewal
              required:
              - sim
              - plan
              - when
            scheduledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Approximate time when the change should take place. This
                is typically set for changes scheduled at renewal. For changes that
                take effect immediately (when `requestedChange.when` is `"now"`),
                this may be null.
              examples:
              - '2021-01-21T19:12:28Z'
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
              description: The SIM to which the subscription should be changed.
            status:
              type: string
              enum:
              - pending
              - initiated
              - applied
              - failed
              - deleted
              description: |
                The current status of the subscription change. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies that
                the subscription change invoice has not yet been paid.
            subscription:
              type:
              - string
              - 'null'
              description: Unique identifier of the subscription to be changed.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
          required:
          - object
          - id
          - failureCode
          - plan
          - requestedChange
          - scheduledAt
          - sim
          - status
          - subscription
          - appliedAt
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscriptionChange.updated
          description: Type is always `com.gigs.subscriptionChange.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.created:
      type: object
      title: com.gigs.subscription.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.created
          description: Type is always `com.gigs.subscription.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.ended:
      type: object
      title: com.gigs.subscription.ended
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.ended
          description: Type is always `com.gigs.subscription.ended`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.renewed:
      type: object
      title: com.gigs.subscription.renewed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.renewed
          description: Type is always `com.gigs.subscription.renewed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.restored:
      type: object
      title: com.gigs.subscription.restored
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.restored
          description: Type is always `com.gigs.subscription.restored`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.restricted:
      type: object
      title: com.gigs.subscription.restricted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.restricted
          description: Type is always `com.gigs.subscription.restricted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.resumed:
      type: object
      title: com.gigs.subscription.resumed
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.resumed
          description: Type is always `com.gigs.subscription.resumed`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.subscription.updated:
      type: object
      title: com.gigs.subscription.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Subscription
          description: Subscriptions are tied to a user and are created once a user
            has a plan and SIM. This allows connectivity for their device and SIM.
          properties:
            object:
              type: string
              const: subscription
              description: Type of object is always `subscription`.
            id:
              type: string
              description: Unique identifier for the subscription.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was activated.
              examples:
              - '2021-01-21T19:38:34Z'
            billing:
              type:
              - object
              - 'null'
              description: Billing details for the subscription. Present when Billing
                is enabled on your project.
              properties:
                discount:
                  type:
                  - object
                  - 'null'
                  description: Discount currently applied to the subscription.
                  properties:
                    voucher:
                      type: string
                      description: The voucher that was applied to create this discount.
                      examples:
                      - vou_0SNlurA049MEWV0h2jfjkdiOdplN
                    expiresAt:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Time when the discount expires. It may be in the
                        past, if it has already expired.
                      examples:
                      - '2021-02-20T19:38:34Z'
                  required:
                  - voucher
                  - expiresAt
                invoiceGracePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days after renewal that an invoice can remain unpaid before it becomes overdue. After this period, the action specified in `invoiceOverdueAction` is triggered.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 3
                invoiceOverduePeriodDays:
                  type:
                  - integer
                  - 'null'
                  description: |
                    Number of days that invoices can remain overdue before subscriptions are ended.

                    Relevant when subscriptions are not ended immediately after an invoice becomes overdue.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                  examples:
                  - 1
                invoiceOverdueAction:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - end
                  - none
                  - restrict
                  description: |
                    Indicates what happens to the subscription when a renewal invoice becomes overdue. One of:

                    - `none`: Leave the subscription as is.
                    - `end`: End the subscription immediately.
                    - `restrict`: Restrict the subscription's connectivity.

                    When configured, this property takes precedence over the value set at the project level.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restrictBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restricted when an invoice becomes overdue. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
                restoreBehavior:
                  type:
                  - string
                  - 'null'
                  enum:
                  -
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Present when `invoiceOverdueAction` is `restrict`; nil otherwise.
                    Determines how subscriptions are restored once a subscription is restored (e.g. after payment of an overdue invoice). It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.


                    <!-- theme: info -->
                    > #### Preview
                    >
                    > This property is currently in preview and might change in the future.
                    >
                    > We’re excited to hear your feedback and ideas. Please send an email
                    > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
              required:
              - discount
              - invoiceGracePeriodDays
              - invoiceOverduePeriodDays
              - invoiceOverdueAction
              - restrictBehavior
              - restoreBehavior
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was canceled.
              examples:
              - '2021-01-29T13:22:51Z'
            cancellationDetails:
              type:
              - object
              - 'null'
              description: Details about the cancellation of the subscription.
              properties:
                cause:
                  type:
                  - string
                  - 'null'
                  enum:
                  - cancellationRequested
                  - deviceBlocked
                  - invoiceUnpaid
                  - paymentDisputed
                  - paymentFailed
                  - phoneNumberPortedOut
                  - portingExpired
                  - simUnusable
                  - subscriptionEnded
                  - userDeleted
                  description: Cause of subscription cancellation.
                userComment:
                  type:
                  - string
                  - 'null'
                  description: Comment from the user explaining the cancellation reason.
                    It is only present when the userReason is other.
                userReason:
                  type:
                  - string
                  - 'null'
                  enum:
                  - connectivityIssues
                  - customerService
                  - noDetails
                  - other
                  - tooExpensive
                  - unused
                  description: Reason for the user to cancel the subscription. It
                    is only present when the cause is cancellationRequested
            createdAt:
              type: string
              format: date-time
              description: Time when the subscription was created.
              examples:
              - '2021-01-21T19:32:13Z'
            currentPeriod:
              anyOf:
              - type: object
                title: Period
                properties:
                  number:
                    type: integer
                    description: Sequence number of the period.
                    minimum: 1
                    examples:
                    - 1
                  start:
                    type: string
                    format: date-time
                    description: Beginning of the period.
                    examples:
                    - '2021-01-21T19:32:13Z'
                  end:
                    type: string
                    format: date-time
                    description: End of the period.
                    examples:
                    - '2021-02-20T19:38:34Z'
                required:
                - number
                - start
                - end
              - type: 'null'
              description: Current subscription period. Only present for active subscriptions.
            earliestEndAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Earliest time at which the subscription can currently be ended. This
                depends on the minimum period of the plan. This value is present after
                the first period has already started, and before the subscription has
                ended."
              examples:
              - '2021-02-20T19:38:34Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the subscription will end or has ended. This field is populated in different scenarios:
                - When a subscription is canceled, this represents the future date when it will be terminated
                - When a subscription has already ended, this represents the past date when it was terminated
                - For active subscriptions, this field is null
              examples:
              - '2021-02-20T19:38:34Z'
            firstUsageAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was first used.
              examples:
              - '2021-01-21T19:38:34Z'
            lastPorting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: Last porting (if any) related with the subscription.
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The phone number attached to the SIM in E.164 string_format.
                Only available for voice plans.
              examples:
              - "+19591234567"
            plan:
              type: object
              title: Plan
              description: Plans define the network options and parameters offered
                to the end user, e.g. 'Unlimited data, voice & text'. Plan allowances
                (data, sms, voice) and limits are configurable, and Gigs will work
                with you to find the best balance for your users.
              properties:
                object:
                  type: string
                  const: plan
                  description: Type of object is always `plan`.
                id:
                  type: string
                  description: Unique identifier for the plan.
                  examples:
                  - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                allowances:
                  type: object
                  title: Allowances
                  description: Usage allowances included in the plan - i.e. how many
                    bytes of data, voice minutes & sms messages the user has access
                    to.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The data allowance in bytes. A value of `null`
                        indicates unlimited data.
                      examples:
                      - 10000000000
                    voiceSeconds:
                      type:
                      - integer
                      - 'null'
                      description: The voice call allowance in seconds. A value of
                        `null` indicates unlimited calls.
                      examples:
                      - 30000
                    smsMessages:
                      type:
                      - integer
                      - 'null'
                      description: The SMS allowance in messages. A value of `null`
                        indicates unlimited SMS.
                      examples:
                      - 100
                  required:
                  - dataBytes
                  - voiceSeconds
                  - smsMessages
                coverage:
                  type: object
                  title: Coverage
                  description: The geographic coverage of the plan.
                  properties:
                    object:
                      type: string
                      const: coverage
                      description: Type of object is always `coverage`.
                    id:
                      type: string
                      description: Unique identifier for the coverage configuration.
                      examples:
                      - de
                    countries:
                      type: array
                      description: List of countries in ISO 3166-1 alpha-2 format
                        covered by this coverage configuration.
                      items:
                        type: string
                        format: ISO 3166-1 alpha-2
                        examples:
                        - DE
                      examples:
                      - - DE
                        - FR
                        - US
                    name:
                      type: string
                      description: A human-readable identifier of the coverage configuration,
                        might not be unique.
                      examples:
                      - Europe
                  required:
                  - object
                  - id
                  - countries
                  - name
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the plan was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                description:
                  type:
                  - string
                  - 'null'
                  description: The plan's description, meant to be displayable to
                    the users.
                  examples:
                  - A data plan you will love! Operates in most countries of the world.
                image:
                  type:
                  - string
                  - 'null'
                  format: url
                  description: The plan's image, meant to be displayable to the users.
                  examples:
                  - https://i.gigscdn.com/pr/nTZpgaEj5dTQ2Jo/original.png
                limits:
                  type: object
                  title: Limits
                  description: Usage limits for the plan - i.e. the maximum available
                    bandwidth, fair-use data limits and throttling threshold.
                  properties:
                    dataBytes:
                      type:
                      - integer
                      - 'null'
                      description: The maximum amount of data that can be used in
                        bytes. A value of `null` indicates unlimited data.
                      examples:
                      - 100000000000
                    bandwidthBitsPerSecond:
                      type:
                      - integer
                      - 'null'
                      description: The maximum bandwidth in bits per second. A value
                        of `null` indicates the maximum bandwidth this network allows.
                      examples:
                      - 100000000
                    throttling:
                      type:
                      - object
                      - 'null'
                      description: The throttling configuration for the plan, if any.
                      properties:
                        thresholdBytes:
                          type: integer
                          description: The threshold in bytes at which throttling
                            will be applied.
                          examples:
                          - 10000000000
                        bandwidthBitsPerSecond:
                          type: integer
                          description: The bandwidth in bits per second that the plan
                            will be throttled to.
                          examples:
                          - 512000
                      required:
                      - thresholdBytes
                      - bandwidthBitsPerSecond
                  required:
                  - dataBytes
                  - bandwidthBitsPerSecond
                  - throttling
                name:
                  type: string
                  description: The plan's name, meant to be displayable to the users.
                  examples:
                  - Gigs Global
                price:
                  type: object
                  title: Price
                  description: The price of the plan.
                  properties:
                    amount:
                      type: integer
                      description: The price amount in the currency's minor unit,
                        e.g. "cents" for many currencies.
                      minimum: 0
                      examples:
                      - 999
                    currency:
                      type: string
                      format: ISO 4217
                      description: Three-letter ISO 4217 currency code. Must be a
                        supported currency.
                      examples:
                      - USD
                  required:
                  - amount
                  - currency
                provider:
                  type: string
                  description: The ID of the network provider supported by this plan.
                  examples:
                  - p5
                requirements:
                  type: object
                  description: Required information that must be collected from the
                    user in order to create a subscription with this plan.
                  properties:
                    address:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The address requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                    device:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The device requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.birthday:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user birthday requirements that must be fulfilled
                        before a user may purchase a subscription.
                    user.fullName:
                      type: string
                      enum:
                      - none
                      - present
                      - verified
                      description: The user full name requirements that must be fulfilled
                        before a user may purchase a subscription.
                      examples:
                      - present
                  required:
                  - address
                  - device
                  - user.birthday
                  - user.fullName
                simTypes:
                  type: array
                  description: List of SIM types supported by this plan. Can be `eSIM`,
                    `pSIM`, or both.
                  items:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                  examples:
                  - - eSIM
                    - pSIM
                status:
                  type: string
                  enum:
                  - available
                  - archived
                  - pending
                  - draft
                validity:
                  type: object
                  title: Validity
                  description: Plan validity information - i.e. subscription period
                    length, and the minimum number of periods before the plan can
                    be ended.
                  properties:
                    minimumPeriods:
                      type: integer
                      description: The minimum number of subscription periods that
                        the plan must be renewed.
                      minimum: 0
                      examples:
                      - 12
                    type:
                      type: string
                      enum:
                      - recurring
                      - oneTime
                      description: The validity type of this plan.
                    unit:
                      type: string
                      enum:
                      - day
                      - month
                      description: The time unit of the subscription period.
                    value:
                      type: integer
                      description: The amount of units (specified in the `unit` property)
                        in each subscription period.
                      minimum: 1
                      examples:
                      - 7
                  required:
                  - minimumPeriods
                  - type
                  - unit
                  - value
                data:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The data allowance in bytes included in this plan. A value of `-1` indicates unlimited data.
                  examples:
                  - 10000000000
                  deprecated: true
                dataUnit:
                  type: string
                  const: byte
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the data value is always `byte`.
                  deprecated: true
                sms:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The sms allowance included in this plan. A value of `-1` indicates unlimited sms.
                  examples:
                  - 100
                  deprecated: true
                smsUnit:
                  type: string
                  const: message
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the sms value is always `message`.
                  deprecated: true
                voice:
                  type: integer
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The voice allowance included in this plan. A value of `-1` indicates unlimited voice.
                  examples:
                  - 30000
                  deprecated: true
                voiceUnit:
                  type: string
                  const: second
                  description: |-
                    <!-- theme: warning -->
                    > #### Deprecated
                    >
                    > This property is deprecated and will be removed in the future.
                    > Use `allowances` instead.


                    The unit of the voice value is always `second`.
                  deprecated: true
              required:
              - object
              - id
              - metadata
              - allowances
              - coverage
              - data
              - dataUnit
              - description
              - image
              - limits
              - name
              - price
              - provider
              - requirements
              - simTypes
              - sms
              - smsUnit
              - status
              - validity
              - voice
              - voiceUnit
              - createdAt
            restrictedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the subscription was restricted.
              examples:
              - '2021-02-21T19:38:34Z'
            restrictionDetails:
              type:
              - object
              - 'null'
              description: Details about the restriction applied to the subscription.
                Present when the subscription is restricted.
              properties:
                restrictBehavior:
                  type: string
                  enum:
                  - incomingOnly
                  - noData
                  - throttledData
                  description: |
                    Determines how the subscription is restricted. It can have one of the following values:

                    - `incomingOnly`: The subscription line can receive calls & SMS, but cannot make calls, send SMS, or use data.
                    - `noData`: The subscription line can make and receive calls & SMS, but cannot use data.
                    - `throttledData`: The subscription line can still make and receive calls & SMS, and use up to 1GB of data at a reduced speed.
                  examples:
                  - incomingOnly
                restoreBehavior:
                  type: string
                  enum:
                  - keepPeriodAnchor
                  - resetPeriodAnchor
                  description: |
                    Determines how the subscription is restored. It can have one of the following values:

                    - `resetPeriodAnchor`: The subscription cycle is reset to the date of restoration. This means the user has a whole new period to use their plan allowance that was just restored.
                    - `keepPeriodAnchor`: The subscription cycle remains unchanged. The next renewal date stays the same as before the restriction.
                  examples:
                  - resetPeriodAnchor
                cause:
                  type: string
                  enum:
                  - invoiceOverdue
                  - restrictionRequested
                  description: |
                    Determines the cause that triggered the subscription restriction. It can have one of the following values:

                    - `invoiceOverdue`: The subscription was automatically restricted due to an unpaid invoice that has become overdue.
                    - `restrictionRequested`: The subscription was manually restricted due to an explicit request.
                  examples:
                  - invoiceOverdue
              required:
              - restrictBehavior
              - restoreBehavior
              - cause
            sim:
              anyOf:
              - type: object
                title: Sim
                description: 'A SIM is a unique card that identifies itself to a specific
                  mobile network and provides voice, text, and data connectivity to
                  a user’s device. There are two types of available SIMs: eSIM and
                  pSIM. eSIMs can be activated and installed instantly on any eSIM
                  compatible device, pSIMs (physical SIMs) must be provided to the
                  user or installed into the device beforehand.'
                properties:
                  object:
                    type: string
                    const: sim
                    description: Type of object is always `sim`.
                  id:
                    type: string
                    description: Unique identifier for the SIM.
                    examples:
                    - sim_0SNlurA049MEWV1BAAmWZULA4lf6
                  metadata:
                    type: object
                    title: Metadata
                    description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                      related to the resource.
                    additionalProperties:
                      type: string
                      maxLength: 255
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the SIM was created.
                    examples:
                    - '2021-01-21T19:38:34Z'
                  iccid:
                    type: string
                    pattern: "^[0-9]{19,20}$"
                    description: The ICCID (integrated circuit card identifier) associated
                      with the SIM.
                    examples:
                    - '89883070000007537119'
                  provider:
                    type: string
                    description: The ID of the network provider of the SIM.
                    examples:
                    - p9
                  status:
                    type: string
                    enum:
                    - inactive
                    - active
                    - retired
                    description: The status of the SIM. Can be `active` or `inactive`.
                  type:
                    type: string
                    enum:
                    - eSIM
                    - pSIM
                    description: The type of the SIM. Can be `eSIM` or `pSIM`.
                required:
                - object
                - id
                - metadata
                - iccid
                - provider
                - status
                - type
                - createdAt
              - type: 'null'
            status:
              type: string
              enum:
              - pending
              - initiated
              - active
              - restricted
              - ended
              description: |
                The current status of the subscription. Note that the `initiated` status
                is currently only available when using the Billing API, where it implies
                that the subscription's first invoice has not yet been paid.
            user:
              type: object
              title: User
              description: Users are end consumers of subscriptions. Users can have
                multiple devices, SIMs, and subscriptions.
              properties:
                object:
                  type: string
                  const: user
                  description: Type of object is always `user`.
                id:
                  type: string
                  description: Unique identifier for the user.
                  examples:
                  - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                metadata:
                  type: object
                  title: Metadata
                  description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                    related to the resource.
                  additionalProperties:
                    type: string
                    maxLength: 255
                birthday:
                  type:
                  - string
                  - 'null'
                  format: date
                  description: The birthday of the user.
                  examples:
                  - '2017-07-21'
                createdAt:
                  type: string
                  format: date-time
                  description: Time when the user was created.
                  examples:
                  - '2021-01-21T19:38:34Z'
                email:
                  type: string
                  format: email
                  description: The primary email address of the user. Must be unique
                    across all users.
                  examples:
                  - jerry@example.com
                emailVerified:
                  type: boolean
                  description: Whether the user's primary email address is verified
                    or not.
                  examples:
                  - true
                fullName:
                  type:
                  - string
                  - 'null'
                  description: The user's full name. Required for some Plans.
                  examples:
                  - Jerry Seinfeld
                preferredLocale:
                  type: string
                  description: The user's locale preference represented as an [IETF
                    language tag](https://en.wikipedia.org/wiki/IETF_language_tag).
                  examples:
                  - en-US
                status:
                  type: string
                  enum:
                  - active
                  - blocked
                  - deleted
                  description: The current status of the user.
              required:
              - object
              - id
              - metadata
              - birthday
              - email
              - emailVerified
              - fullName
              - preferredLocale
              - createdAt
              - status
            userAddress:
              type:
              - string
              - 'null'
              description: Current [user address](https://developers.gigs.com/core/user-addresses#the-user-address-resource)
                identifier (if any) related with the subscription.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            porting:
              anyOf:
              - type: object
                title: Porting
                description: Porting is required when a user wants to keep their phone
                  number when changing their subscription. There are multiple steps
                  involved between the user, their previous carrier, and the new subscriber
                properties:
                  object:
                    type: string
                    const: porting
                    description: Type of object is always `porting`.
                  id:
                    type: string
                    description: Unique identifier for the porting.
                    examples:
                    - prt_0SNlurA049MEWV39s2kSYqaat7ZS
                  accountNumber:
                    type:
                    - string
                    - 'null'
                    description: The account number on the donor service provider.
                    examples:
                    - '123456789'
                  accountPinExists:
                    type: boolean
                    description: Whether the account PIN has been provided.
                    examples:
                    - true
                  address:
                    type:
                    - object
                    - 'null'
                    description: The address of the account holder on the donor service
                      provider.
                    properties:
                      city:
                        type: string
                        description: The city/municipality of the address.
                        examples:
                        - New York City
                      country:
                        type: string
                        description: The ISO 3166-1 alpha-2 country code of the address.
                        examples:
                        - US
                      line1:
                        type: string
                        description: The first line of the address, e.g. street and
                          house number.
                        examples:
                        - 129 West 81st Street
                      line2:
                        type:
                        - string
                        - 'null'
                        description: TThe second line of the address, e.g. apartment
                          number.
                        examples:
                        - Apartment 5
                      postalCode:
                        type: string
                        description: The postal code of the address.
                        examples:
                        - '10024'
                      state:
                        type:
                        - string
                        - 'null'
                        description: The state/province/region of the address.
                        examples:
                        - NY
                    required:
                    - city
                    - country
                    - line1
                    - line2
                    - postalCode
                    - state
                  behavior:
                    type: string
                    enum:
                    - cancelOnly
                    - portIn
                    description: |
                      The behavior of the porting.

                      A value of `portIn` indicates that this porting
                      will transfer the phone number from the previous provider.

                      A porting with behavior `cancelOnly` will cancel
                      the previous service without transferring the number. This behavior is
                      currently only available for local plans in the United Kingdom.
                    examples:
                    - portIn
                  billingPinExists:
                    type: boolean
                    description: Whether the billing PIN has been provided.
                    examples:
                    - true
                  birthday:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: The birthday of the account holder on the donor service
                      provider.
                    examples:
                    - '2017-07-21'
                  canceledAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was canceled.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  completedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was completed.
                    examples:
                    - '2021-01-21T19:36:57Z'
                  createdAt:
                    type: string
                    format: date-time
                    description: Time when the porting was created.
                    examples:
                    - '2021-01-21T19:12:28Z'
                  declinedAttempts:
                    type: integer
                    description: The number of declined porting attempts so far.
                    minimum: 0
                    examples:
                    - 0
                  declinedCode:
                    type:
                    - string
                    - 'null'
                    description: The code reason for the declined porting.
                    examples:
                    - portingPhoneNumberPortProtected
                  declinedMessage:
                    type:
                    - string
                    - 'null'
                    description: The reason description for the declined porting.
                    examples:
                    - The phone number has port protection on the provider.
                  donorProvider:
                    anyOf:
                    - type: object
                      title: ServiceProvider
                      properties:
                        object:
                          type: string
                          const: serviceProvider
                          description: Type of object is always `serviceProvider`.
                        id:
                          type: string
                          description: Unique identifier for the service provider.
                          examples:
                          - svp_0SNlurA01K6GY5L0XJffY8
                        country:
                          type: string
                          format: ISO 3166-1 alpha-2
                          description: The ISO 3166-1 alpha-2 country code of the
                            service provider.
                          examples:
                          - US
                        name:
                          type: string
                          description: The name of the service provider, usually a
                            brand name.
                          examples:
                          - AT&T
                        recipientProviders:
                          type: array
                          default:
                          - p3
                          description: List of network providers IDs that can receive
                            portings from the service provider.
                          items:
                            type: string
                            examples:
                            - p3
                      required:
                      - object
                      - id
                      - country
                      - name
                      - recipientProviders
                    - type: 'null'
                    description: The service provider from whom the number is ported.
                  donorProviderApproval:
                    type:
                    - boolean
                    - 'null'
                    description: Whether the donor provider has approved or not the
                      porting.
                    examples:
                    - true
                  expiredAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was expired.
                    examples:
                    - '2021-01-21T19:39:53Z'
                  firstName:
                    type:
                    - string
                    - 'null'
                    description: The first name of the account holder on the donor
                      service provider.
                    examples:
                    - Jerry
                  lastDeclinedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last declined.
                    examples:
                    - '2021-01-21T19:31:13Z'
                  lastName:
                    type:
                    - string
                    - 'null'
                    description: The last name of the account holder on the donor
                      service provider.
                    examples:
                    - Seinfeld
                  lastRequestedAt:
                    type:
                    - string
                    - 'null'
                    format: date-time
                    description: Time when the porting was last requested.
                    examples:
                    - '2021-01-21T19:22:31Z'
                  phoneNumber:
                    type: string
                    format: E.164
                    description: The phone number to port in E.164 string_format.
                    examples:
                    - "+19591234567"
                  provider:
                    type: string
                    description: The ID of the recipient network provider.
                    examples:
                    - p9
                  recipientProvider:
                    type: object
                    title: ServiceProvider
                    description: The service provider to whom the number is ported.
                    properties:
                      object:
                        type: string
                        const: serviceProvider
                        description: Type of object is always `serviceProvider`.
                      id:
                        type: string
                        description: Unique identifier for the service provider.
                        examples:
                        - svp_0SNlurA01K6GY5L0XJffY8
                      country:
                        type: string
                        format: ISO 3166-1 alpha-2
                        description: The ISO 3166-1 alpha-2 country code of the service
                          provider.
                        examples:
                        - US
                      name:
                        type: string
                        description: The name of the service provider, usually a brand
                          name.
                        examples:
                        - AT&T
                      recipientProviders:
                        type: array
                        default:
                        - p3
                        description: List of network providers IDs that can receive
                          portings from the service provider.
                        items:
                          type: string
                          examples:
                          - p3
                    required:
                    - object
                    - id
                    - country
                    - name
                    - recipientProviders
                  required:
                    type: array
                    description: List of fields required for the porting to be processable.
                      The fields depend on the donor and recipient providers.
                    items:
                      type: string
                    examples:
                    - - accountNumber
                      - accountPin
                      - address
                      - birthday
                      - donorProvider
                      - donorProviderApproval
                      - firstName
                      - lastName
                  scheduledOn:
                    type:
                    - string
                    - 'null'
                    format: date
                    description: |
                      Date when the porting is scheduled to take effect.

                      The ability to schedule portings is only available for local plans in the United Kingdom. Otherwise, this value will be null.
                    examples:
                    - '2021-01-21'
                  status:
                    type: string
                    enum:
                    - draft
                    - pending
                    - informationRequired
                    - requested
                    - declined
                    - completed
                    - canceled
                    - expired
                    description: The current status of the porting.
                  subscription:
                    type:
                    - string
                    - 'null'
                    description: Unique identifier for the porting subscription.
                    examples:
                    - sub_0SNlurA049MEWV2gSfSxi00xlPIi
                  user:
                    type: string
                    description: Unique identifier for the user this porting is for.
                    examples:
                    - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
                required:
                - object
                - id
                - accountNumber
                - accountPinExists
                - address
                - behavior
                - billingPinExists
                - scheduledOn
                - birthday
                - declinedAttempts
                - declinedCode
                - declinedMessage
                - donorProvider
                - donorProviderApproval
                - firstName
                - lastName
                - phoneNumber
                - provider
                - recipientProvider
                - required
                - status
                - subscription
                - user
                - canceledAt
                - completedAt
                - createdAt
                - expiredAt
                - lastDeclinedAt
                - lastRequestedAt
              - type: 'null'
              description: First porting requested by the user. Refer to `lastPorting`
                to get the latest porting information.
              deprecated: true
          required:
          - object
          - id
          - metadata
          - billing
          - cancellationDetails
          - currentPeriod
          - lastPorting
          - phoneNumber
          - plan
          - restrictionDetails
          - sim
          - status
          - user
          - userAddress
          - porting
          - activatedAt
          - restrictedAt
          - canceledAt
          - createdAt
          - earliestEndAt
          - endedAt
          - firstUsageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.subscription.updated
          description: Type is always `com.gigs.subscription.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.usageNotification.created:
      type: object
      title: com.gigs.usageNotification.created
      description: |
        Triggered when a new usage notification is created.

        The currently-supported types of usage notification are:

          - `started`, which is fired when the `subscription` is first used.
          - `throttled`, which is fired when the `subscription` has had its data
            usage throttled to a lower bandwidth.
          - `thresholdExceeded`, which is fired when the `subscription` has used
            70%, 90% and 100% of its `data`, `sms` or `voice` allowance.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: UsageNotification
          properties:
            object:
              type: string
              const: usageNotification
              description: Type of object is always `usageNotification`.
            subscription:
              type: string
              description: Unique subscription identifier.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            thresholdExceeded:
              type:
              - object
              - 'null'
              description: |
                Information about the exceeded threshold. Only present when `type` is
                `thresholdExceeded`.

                Currently this notification is fired when a subscription has exceeded
                either 70%, 90% or 100% of its data, sms or voice allowances.
              properties:
                type:
                  type: string
                  enum:
                  - data
                  - sms
                  - voice
                  - dataTethering
                  - dataDevice
                  - smsInternational
                  - smsLocal
                  - voiceInternational
                  - voiceLocal
                  description: The usage type for the exceeded threshold.
                  examples:
                  - data
                at:
                  type: string
                  format: date-time
                  description: The time at which the threshold was exceeded.
                  examples:
                  - '2024-02-29T14:01:12Z'
                data:
                  type:
                  - object
                  - 'null'
                  description: Data usage & allowance. Only present when `type` is
                    `data`.
                  properties:
                    allowanceBytes:
                      type: integer
                      description: |
                        The total data allowance for the current subscription period, in
                        bytes. This can be higher than the plan's data allowance if there
                        are active subscription add-ons.
                      examples:
                      - 10000000000
                    usageBytes:
                      type: integer
                      description: 'The total data usage for the current subscription
                        period, in bytes.

                        '
                      examples:
                      - 7000000000
                  required:
                  - allowanceBytes
                  - usageBytes
                percentage:
                  type: integer
                  description: The usage threshold percentage which was exceeded.
                  maximum: 100
                  minimum: 0
                  examples:
                  - 70
                roaming:
                  type:
                  - string
                  - 'null'
                  enum:
                  - none
                  - international
                  - domestic
                  description: Indicates the roaming mode for the usage in question.
                  examples:
                  - none
                dataDevice:
                  type:
                  - object
                  - 'null'
                  description: Data allowance and its usage on device.
                  properties:
                    allowanceBytes:
                      type: integer
                      description: The total data allowance to be used on device,
                        in bytes.
                      examples:
                      - 5000000000
                    usageBytes:
                      type: integer
                      description: The total data usage on the device, in bytes.
                      examples:
                      - 3500000000
                dataTethering:
                  type:
                  - object
                  - 'null'
                  description: Data allowance and its usage for hotspot tethering.
                  properties:
                    allowanceBytes:
                      type: integer
                      description: The total data allowance for hotspot tethering
                        mode, in bytes.
                      examples:
                      - 5000000000
                    usageBytes:
                      type: integer
                      description: The total data usage for the current subscription
                        period for tethering, in bytes.
                      examples:
                      - 3500000000
                voiceInternational:
                  type:
                  - object
                  - 'null'
                  description: Voice allowance and its usage for international calls.
                  properties:
                    allowanceSeconds:
                      type: integer
                      description: The total voice allowance for international calls,
                        in seconds.
                      examples:
                      - 10000
                    usageSeconds:
                      type: integer
                      description: The total voice usage for international calls,
                        in seconds.
                      examples:
                      - 7000
                voiceLocal:
                  type:
                  - object
                  - 'null'
                  description: Voice allowance and its usage for local calls.
                  properties:
                    allowanceSeconds:
                      type: integer
                      description: The total voice allowance for local calls, in seconds.
                      examples:
                      - 20000
                    usageSeconds:
                      type: integer
                      description: The total voice usage for local calls, in seconds.
                      examples:
                      - 15000
                smsInternational:
                  type:
                  - object
                  - 'null'
                  description: SMS allowance and its usage for international messages.
                  properties:
                    allowanceMessages:
                      type: integer
                      description: The total sms allowance for international messages,
                        in number of messages.
                      examples:
                      - 5000
                    usageMessages:
                      type: integer
                      description: The total sms usage for international messages,
                        in number of messages.
                      examples:
                      - 3500
                smsLocal:
                  type:
                  - object
                  - 'null'
                  description: SMS allowance and its usage for local messages.
                  properties:
                    allowanceMessages:
                      type: integer
                      description: The total sms allowance for local messages, in
                        number of messages.
                      examples:
                      - 10000
                    usageMessages:
                      type: integer
                      description: The total sms usage for local messages, in number
                        of messages.
                      examples:
                      - 7000
                sms:
                  type:
                  - object
                  - 'null'
                  description: Text usage & allowance. Only present when `type` is
                    `sms`.
                  properties:
                    allowanceMessages:
                      type: integer
                      description: |
                        The total sms allowance for the current subscription period, in
                        number of messages.
                      examples:
                      - 10000
                    usageMessages:
                      type: integer
                      description: |
                        The total sms usage for the current subscription period, in number
                        of messages.
                      examples:
                      - 7000
                  required:
                  - allowanceMessages
                  - usageMessages
                subscriptionAddons:
                  type: array
                  description: |
                    List of identifiers of any subscription add-ons which contributed to
                    the crossed allowance threshold.
                  items:
                    type: string
                  examples:
                  - - sad_0SNlurA049MEWV2UNWPbDfW5B40U
                voice:
                  type:
                  - object
                  - 'null'
                  description: Voice usage & allowance. Only present when `type` is
                    `voice`.
                  properties:
                    allowanceSeconds:
                      type: integer
                      description: |
                        The total voice allowance for the current subscription period, in
                        seconds.
                      examples:
                      - 50000
                    usageSeconds:
                      type: integer
                      description: |
                        The total voice usage for the current subscription period, in
                        seconds.
                      examples:
                      - 35000
                  required:
                  - allowanceSeconds
                  - usageSeconds
              required:
              - at
              - percentage
              - subscriptionAddons
            throttled:
              type:
              - object
              - 'null'
              description: The throttling configuration for the subscription. Only
                present if `type` is `throttled`.
              properties:
                thresholdBytes:
                  type: integer
                  description: The threshold in bytes at which throttling will be
                    applied.
                  examples:
                  - 10000000000
                bandwidthBitsPerSecond:
                  type: integer
                  description: The bandwidth in bits per second that the plan will
                    be throttled to.
                  examples:
                  - 512000
                until:
                  type: string
                  format: date-time
                  description: The time until which the throttling configuration is
                    effective. Valid only at the time of publishing. Throttling may
                    end earlier if a top-up is applied, allowing data usage to continue
                    without throttling restrictions.
                  examples:
                  - '2021-02-20T19:38:34Z'
              required:
              - thresholdBytes
              - bandwidthBitsPerSecond
              - until
            type:
              type: string
              enum:
              - started
              - thresholdExceeded
              - throttled
              description: The type of notification.
              examples:
              - throttled
          required:
          - object
          - subscription
          - type
          examples:
          - object: usageNotification
            subscription: sub_0SNlurA049MEWV2gSfSxi00xlPIi
            thresholdExceeded:
            throttled:
              thresholdBytes: 10000000000
              bandwidthBitsPerSecond: 512000
              until: '2021-02-20T19:38:34Z'
            type: throttled
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.usageNotification.created
          description: Type is always `com.gigs.usageNotification.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.usageThreshold.exceeded:
      type: object
      title: com.gigs.usageThreshold.exceeded
      description: |-
        <!-- theme: warning -->
        > #### Deprecated
        >
        > This event is deprecated and will be removed in the future.
        > Please use `com.gigs.usageNotification.created` instead. That event fires
        > with type `thresholdExceeded` at the same time as this one.


        Fires whenever a data, sms or voice usage threshold is exceeded. The
        currently-supported thresholds are 70%, 90% and 100%.
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: UsageThresholdExceeded
          properties:
            object:
              type: string
              const: usageThresholdExceeded
              description: Type of object is always `usageThresholdExceeded`.
            allowance:
              type: integer
              description: Indicates the absolute usage allowance in the subscription
                period. The value is in units specified by the `unit` field.
            plan:
              type: string
              description: Unique plan identifier for the plan that provided the allowance.
              examples:
              - pln_0SNlurA049MEWV3V0q7gjQbM4EVo
            project:
              type: string
              description: Unique project identifier.
              examples:
              - test
            subscription:
              type: string
              description: Unique subscription identifier.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            subscriptionAddons:
              type:
              - array
              - 'null'
              description: List of unique subscription add-on identifiers for add-ons
                that contributed to the allowance.
              items:
                type: string
              examples:
              - - sad_0SNlurA049MEWV2UNWPbDfW5B40U
            thresholdPercentage:
              type: integer
              description: Indicates the usage threshold percentage which was exceeded.
              maximum: 100
              minimum: 0
              examples:
              - 75
            type:
              type: string
              enum:
              - data
              - voice
              - sms
              description: The usage type for the exceeded threshold.
              examples:
              - data
            unit:
              type: string
              enum:
              - byte
              - second
              - message
              description: The unit of the usage and allowance values.
              examples:
              - byte
            usage:
              type: integer
              description: Indicates the absolute usage amount in the subscription
                period, at the time the threshold was exceeded. The value is in units
                specified by the `unit` field.
              minimum: 0
            usageAt:
              type: string
              format: date-time
              description: Time associated to the usage that exceeded the threshold.
              examples:
              - '2021-01-21T19:38:34Z'
          required:
          - object
          - allowance
          - plan
          - project
          - subscription
          - subscriptionAddons
          - thresholdPercentage
          - type
          - unit
          - usage
          - usageAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.usageThreshold.exceeded
          description: Type is always `com.gigs.usageThreshold.exceeded`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: true
    com.gigs.user.address.created:
      type: object
      title: com.gigs.user.address.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: UserAddress
          properties:
            object:
              type: string
              const: userAddress
              description: Type of object is always `userAddress`.
            id:
              type: string
              description: Unique identifier for the address.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            city:
              type: string
              description: The city/municipality of the address.
              examples:
              - New York City
            country:
              type: string
              description: The ISO 3166-1 alpha-2 country code of the address.
              examples:
              - US
            createdAt:
              type: string
              format: date-time
              description: The time the address was created.
              examples:
              - '2021-01-21T19:38:34Z'
            line1:
              type: string
              description: The first line of the address, e.g. street and house number.
              examples:
              - 129 West 81st Street
            line2:
              type:
              - string
              - 'null'
              description: The second line of the address, e.g. apartment number.
              examples:
              - Apartment 5
            postalCode:
              type:
              - string
              - 'null'
              description: The postal code of the address.
              examples:
              - '10024'
            state:
              type:
              - string
              - 'null'
              description: The state/province/region of the address.
              examples:
              - NY
            user:
              type: string
              description: Unique identifier for the address user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - city
          - country
          - line1
          - line2
          - postalCode
          - state
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.address.created
          description: Type is always `com.gigs.user.address.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.address.deleted:
      type: object
      title: com.gigs.user.address.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: UserAddress
          properties:
            object:
              type: string
              const: userAddress
              description: Type of object is always `userAddress`.
            id:
              type: string
              description: Unique identifier for the address.
              examples:
              - adr_0SNlurA049MEWV5ELDmnaqVXgTFT
            city:
              type: string
              description: The city/municipality of the address.
              examples:
              - New York City
            country:
              type: string
              description: The ISO 3166-1 alpha-2 country code of the address.
              examples:
              - US
            createdAt:
              type: string
              format: date-time
              description: The time the address was created.
              examples:
              - '2021-01-21T19:38:34Z'
            line1:
              type: string
              description: The first line of the address, e.g. street and house number.
              examples:
              - 129 West 81st Street
            line2:
              type:
              - string
              - 'null'
              description: The second line of the address, e.g. apartment number.
              examples:
              - Apartment 5
            postalCode:
              type:
              - string
              - 'null'
              description: The postal code of the address.
              examples:
              - '10024'
            state:
              type:
              - string
              - 'null'
              description: The state/province/region of the address.
              examples:
              - NY
            user:
              type: string
              description: Unique identifier for the address user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - city
          - country
          - line1
          - line2
          - postalCode
          - state
          - user
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.address.deleted
          description: Type is always `com.gigs.user.address.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.blocked:
      type: object
      title: com.gigs.user.blocked
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: User
          description: Users are end consumers of subscriptions. Users can have multiple
            devices, SIMs, and subscriptions.
          properties:
            object:
              type: string
              const: user
              description: Type of object is always `user`.
            id:
              type: string
              description: Unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the user.
              examples:
              - '2017-07-21'
            createdAt:
              type: string
              format: date-time
              description: Time when the user was created.
              examples:
              - '2021-01-21T19:38:34Z'
            email:
              type: string
              format: email
              description: The primary email address of the user. Must be unique across
                all users.
              examples:
              - jerry@example.com
            emailVerified:
              type: boolean
              description: Whether the user's primary email address is verified or
                not.
              examples:
              - true
            fullName:
              type:
              - string
              - 'null'
              description: The user's full name. Required for some Plans.
              examples:
              - Jerry Seinfeld
            preferredLocale:
              type: string
              description: The user's locale preference represented as an [IETF language
                tag](https://en.wikipedia.org/wiki/IETF_language_tag).
              examples:
              - en-US
            status:
              type: string
              enum:
              - active
              - blocked
              - deleted
              description: The current status of the user.
          required:
          - object
          - id
          - metadata
          - birthday
          - email
          - emailVerified
          - fullName
          - preferredLocale
          - createdAt
          - status
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.blocked
          description: Type is always `com.gigs.user.blocked`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.created:
      type: object
      title: com.gigs.user.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: User
          description: Users are end consumers of subscriptions. Users can have multiple
            devices, SIMs, and subscriptions.
          properties:
            object:
              type: string
              const: user
              description: Type of object is always `user`.
            id:
              type: string
              description: Unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the user.
              examples:
              - '2017-07-21'
            createdAt:
              type: string
              format: date-time
              description: Time when the user was created.
              examples:
              - '2021-01-21T19:38:34Z'
            email:
              type: string
              format: email
              description: The primary email address of the user. Must be unique across
                all users.
              examples:
              - jerry@example.com
            emailVerified:
              type: boolean
              description: Whether the user's primary email address is verified or
                not.
              examples:
              - true
            fullName:
              type:
              - string
              - 'null'
              description: The user's full name. Required for some Plans.
              examples:
              - Jerry Seinfeld
            preferredLocale:
              type: string
              description: The user's locale preference represented as an [IETF language
                tag](https://en.wikipedia.org/wiki/IETF_language_tag).
              examples:
              - en-US
            status:
              type: string
              enum:
              - active
              - blocked
              - deleted
              description: The current status of the user.
          required:
          - object
          - id
          - metadata
          - birthday
          - email
          - emailVerified
          - fullName
          - preferredLocale
          - createdAt
          - status
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.created
          description: Type is always `com.gigs.user.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.deleted:
      type: object
      title: com.gigs.user.deleted
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: User
          description: Users are end consumers of subscriptions. Users can have multiple
            devices, SIMs, and subscriptions.
          properties:
            object:
              type: string
              const: user
              description: Type of object is always `user`.
            id:
              type: string
              description: Unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the user.
              examples:
              - '2017-07-21'
            createdAt:
              type: string
              format: date-time
              description: Time when the user was created.
              examples:
              - '2021-01-21T19:38:34Z'
            email:
              type: string
              format: email
              description: The primary email address of the user. Must be unique across
                all users.
              examples:
              - jerry@example.com
            emailVerified:
              type: boolean
              description: Whether the user's primary email address is verified or
                not.
              examples:
              - true
            fullName:
              type:
              - string
              - 'null'
              description: The user's full name. Required for some Plans.
              examples:
              - Jerry Seinfeld
            preferredLocale:
              type: string
              description: The user's locale preference represented as an [IETF language
                tag](https://en.wikipedia.org/wiki/IETF_language_tag).
              examples:
              - en-US
            status:
              type: string
              enum:
              - active
              - blocked
              - deleted
              description: The current status of the user.
          required:
          - object
          - id
          - metadata
          - birthday
          - email
          - emailVerified
          - fullName
          - preferredLocale
          - createdAt
          - status
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.deleted
          description: Type is always `com.gigs.user.deleted`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.updated:
      type: object
      title: com.gigs.user.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: User
          description: Users are end consumers of subscriptions. Users can have multiple
            devices, SIMs, and subscriptions.
          properties:
            object:
              type: string
              const: user
              description: Type of object is always `user`.
            id:
              type: string
              description: Unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the user.
              examples:
              - '2017-07-21'
            createdAt:
              type: string
              format: date-time
              description: Time when the user was created.
              examples:
              - '2021-01-21T19:38:34Z'
            email:
              type: string
              format: email
              description: The primary email address of the user. Must be unique across
                all users.
              examples:
              - jerry@example.com
            emailVerified:
              type: boolean
              description: Whether the user's primary email address is verified or
                not.
              examples:
              - true
            fullName:
              type:
              - string
              - 'null'
              description: The user's full name. Required for some Plans.
              examples:
              - Jerry Seinfeld
            preferredLocale:
              type: string
              description: The user's locale preference represented as an [IETF language
                tag](https://en.wikipedia.org/wiki/IETF_language_tag).
              examples:
              - en-US
            status:
              type: string
              enum:
              - active
              - blocked
              - deleted
              description: The current status of the user.
          required:
          - object
          - id
          - metadata
          - birthday
          - email
          - emailVerified
          - fullName
          - preferredLocale
          - createdAt
          - status
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.updated
          description: Type is always `com.gigs.user.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.user.verified:
      type: object
      title: com.gigs.user.verified
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: User
          description: Users are end consumers of subscriptions. Users can have multiple
            devices, SIMs, and subscriptions.
          properties:
            object:
              type: string
              const: user
              description: Type of object is always `user`.
            id:
              type: string
              description: Unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            metadata:
              type: object
              title: Metadata
              description: A set of key-value pairs, to store [metadata](https://developers.gigs.com/docs/core/metadata)
                related to the resource.
              additionalProperties:
                type: string
                maxLength: 255
            birthday:
              type:
              - string
              - 'null'
              format: date
              description: The birthday of the user.
              examples:
              - '2017-07-21'
            createdAt:
              type: string
              format: date-time
              description: Time when the user was created.
              examples:
              - '2021-01-21T19:38:34Z'
            email:
              type: string
              format: email
              description: The primary email address of the user. Must be unique across
                all users.
              examples:
              - jerry@example.com
            emailVerified:
              type: boolean
              description: Whether the user's primary email address is verified or
                not.
              examples:
              - true
            fullName:
              type:
              - string
              - 'null'
              description: The user's full name. Required for some Plans.
              examples:
              - Jerry Seinfeld
            preferredLocale:
              type: string
              description: The user's locale preference represented as an [IETF language
                tag](https://en.wikipedia.org/wiki/IETF_language_tag).
              examples:
              - en-US
            status:
              type: string
              enum:
              - active
              - blocked
              - deleted
              description: The current status of the user.
          required:
          - object
          - id
          - metadata
          - birthday
          - email
          - emailVerified
          - fullName
          - preferredLocale
          - createdAt
          - status
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.user.verified
          description: Type is always `com.gigs.user.verified`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.virtualNumber.activated:
      type: object
      title: com.gigs.virtualNumber.activated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: VirtualNumber
          description: |
            Virtual numbers are additional numbers that can be added for a user. Any calls made or texts sent to an active virtual number will be received by the primary number of the `subscription`. Note that this is an experimental feature that is only available in select projects.

            <!-- theme: info -->
            > #### Preview
            >
            > This schema is currently in preview and might change in the future.
            >
            > We’re excited to hear your feedback and ideas. Please send an email
            > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
          properties:
            object:
              type: string
              const: virtualNumber
              description: Type of object is always `virtualNumber`.
            id:
              type: string
              description: Unique identifier for the virtual number.
              examples:
              - vnr_0SNlurA049MEWV29mxRtSMDnKtUD
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was activated.
              examples:
              - '2020-01-01T00:00:07Z'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was canceled.
              examples:
              - '2020-07-15T00:00:00Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the virtual number was created.
              examples:
              - '2020-01-01T00:00:00Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the virtual number will end or has ended. This field is populated in different scenarios:
                - When a virtual number is canceled, this represents the future date when it will be terminated
                - When a virtual number has already ended, this represents the past date when it was terminated
              examples:
              - '2020-08-01T00:00:00Z'
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The virtual phone number.
              examples:
              - "+447700900000"
            status:
              type: string
              enum:
              - active
              - ended
              - initiated
              - processing
              description: The current status of the virtual number.
              examples:
              - active
            subscription:
              type: string
              description: Unique identifier for the subscription this virtual number
                belongs to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this virtual number belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
          - phoneNumber
          - status
          - subscription
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.virtualNumber.activated
          description: Type is always `com.gigs.virtualNumber.activated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.virtualNumber.canceled:
      type: object
      title: com.gigs.virtualNumber.canceled
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: VirtualNumber
          description: |
            Virtual numbers are additional numbers that can be added for a user. Any calls made or texts sent to an active virtual number will be received by the primary number of the `subscription`. Note that this is an experimental feature that is only available in select projects.

            <!-- theme: info -->
            > #### Preview
            >
            > This schema is currently in preview and might change in the future.
            >
            > We’re excited to hear your feedback and ideas. Please send an email
            > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
          properties:
            object:
              type: string
              const: virtualNumber
              description: Type of object is always `virtualNumber`.
            id:
              type: string
              description: Unique identifier for the virtual number.
              examples:
              - vnr_0SNlurA049MEWV29mxRtSMDnKtUD
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was activated.
              examples:
              - '2020-01-01T00:00:07Z'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was canceled.
              examples:
              - '2020-07-15T00:00:00Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the virtual number was created.
              examples:
              - '2020-01-01T00:00:00Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the virtual number will end or has ended. This field is populated in different scenarios:
                - When a virtual number is canceled, this represents the future date when it will be terminated
                - When a virtual number has already ended, this represents the past date when it was terminated
              examples:
              - '2020-08-01T00:00:00Z'
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The virtual phone number.
              examples:
              - "+447700900000"
            status:
              type: string
              enum:
              - active
              - ended
              - initiated
              - processing
              description: The current status of the virtual number.
              examples:
              - active
            subscription:
              type: string
              description: Unique identifier for the subscription this virtual number
                belongs to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this virtual number belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
          - phoneNumber
          - status
          - subscription
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.virtualNumber.canceled
          description: Type is always `com.gigs.virtualNumber.canceled`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.virtualNumber.created:
      type: object
      title: com.gigs.virtualNumber.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: VirtualNumber
          description: |
            Virtual numbers are additional numbers that can be added for a user. Any calls made or texts sent to an active virtual number will be received by the primary number of the `subscription`. Note that this is an experimental feature that is only available in select projects.

            <!-- theme: info -->
            > #### Preview
            >
            > This schema is currently in preview and might change in the future.
            >
            > We’re excited to hear your feedback and ideas. Please send an email
            > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
          properties:
            object:
              type: string
              const: virtualNumber
              description: Type of object is always `virtualNumber`.
            id:
              type: string
              description: Unique identifier for the virtual number.
              examples:
              - vnr_0SNlurA049MEWV29mxRtSMDnKtUD
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was activated.
              examples:
              - '2020-01-01T00:00:07Z'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was canceled.
              examples:
              - '2020-07-15T00:00:00Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the virtual number was created.
              examples:
              - '2020-01-01T00:00:00Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the virtual number will end or has ended. This field is populated in different scenarios:
                - When a virtual number is canceled, this represents the future date when it will be terminated
                - When a virtual number has already ended, this represents the past date when it was terminated
              examples:
              - '2020-08-01T00:00:00Z'
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The virtual phone number.
              examples:
              - "+447700900000"
            status:
              type: string
              enum:
              - active
              - ended
              - initiated
              - processing
              description: The current status of the virtual number.
              examples:
              - active
            subscription:
              type: string
              description: Unique identifier for the subscription this virtual number
                belongs to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this virtual number belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
          - phoneNumber
          - status
          - subscription
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.virtualNumber.created
          description: Type is always `com.gigs.virtualNumber.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.virtualNumber.ended:
      type: object
      title: com.gigs.virtualNumber.ended
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: VirtualNumber
          description: |
            Virtual numbers are additional numbers that can be added for a user. Any calls made or texts sent to an active virtual number will be received by the primary number of the `subscription`. Note that this is an experimental feature that is only available in select projects.

            <!-- theme: info -->
            > #### Preview
            >
            > This schema is currently in preview and might change in the future.
            >
            > We’re excited to hear your feedback and ideas. Please send an email
            > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
          properties:
            object:
              type: string
              const: virtualNumber
              description: Type of object is always `virtualNumber`.
            id:
              type: string
              description: Unique identifier for the virtual number.
              examples:
              - vnr_0SNlurA049MEWV29mxRtSMDnKtUD
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was activated.
              examples:
              - '2020-01-01T00:00:07Z'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was canceled.
              examples:
              - '2020-07-15T00:00:00Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the virtual number was created.
              examples:
              - '2020-01-01T00:00:00Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the virtual number will end or has ended. This field is populated in different scenarios:
                - When a virtual number is canceled, this represents the future date when it will be terminated
                - When a virtual number has already ended, this represents the past date when it was terminated
              examples:
              - '2020-08-01T00:00:00Z'
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The virtual phone number.
              examples:
              - "+447700900000"
            status:
              type: string
              enum:
              - active
              - ended
              - initiated
              - processing
              description: The current status of the virtual number.
              examples:
              - active
            subscription:
              type: string
              description: Unique identifier for the subscription this virtual number
                belongs to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this virtual number belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
          - phoneNumber
          - status
          - subscription
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.virtualNumber.ended
          description: Type is always `com.gigs.virtualNumber.ended`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.virtualNumber.updated:
      type: object
      title: com.gigs.virtualNumber.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: VirtualNumber
          description: |
            Virtual numbers are additional numbers that can be added for a user. Any calls made or texts sent to an active virtual number will be received by the primary number of the `subscription`. Note that this is an experimental feature that is only available in select projects.

            <!-- theme: info -->
            > #### Preview
            >
            > This schema is currently in preview and might change in the future.
            >
            > We’re excited to hear your feedback and ideas. Please send an email
            > to [support@gigs.com](mailto:support@gigs.com) to share your thoughts.
          properties:
            object:
              type: string
              const: virtualNumber
              description: Type of object is always `virtualNumber`.
            id:
              type: string
              description: Unique identifier for the virtual number.
              examples:
              - vnr_0SNlurA049MEWV29mxRtSMDnKtUD
            activatedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was activated.
              examples:
              - '2020-01-01T00:00:07Z'
            canceledAt:
              type:
              - string
              - 'null'
              format: date-time
              description: Time when the virtual number was canceled.
              examples:
              - '2020-07-15T00:00:00Z'
            createdAt:
              type: string
              format: date-time
              description: Time when the virtual number was created.
              examples:
              - '2020-01-01T00:00:00Z'
            endedAt:
              type:
              - string
              - 'null'
              format: date-time
              description: |
                Time when the virtual number will end or has ended. This field is populated in different scenarios:
                - When a virtual number is canceled, this represents the future date when it will be terminated
                - When a virtual number has already ended, this represents the past date when it was terminated
              examples:
              - '2020-08-01T00:00:00Z'
            phoneNumber:
              type:
              - string
              - 'null'
              format: E.164
              description: The virtual phone number.
              examples:
              - "+447700900000"
            status:
              type: string
              enum:
              - active
              - ended
              - initiated
              - processing
              description: The current status of the virtual number.
              examples:
              - active
            subscription:
              type: string
              description: Unique identifier for the subscription this virtual number
                belongs to.
              examples:
              - sub_0SNlurA049MEWV2gSfSxi00xlPIi
            user:
              type: string
              description: Unique identifier for the user this virtual number belongs
                to.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          required:
          - object
          - id
          - activatedAt
          - canceledAt
          - createdAt
          - endedAt
          - phoneNumber
          - status
          - subscription
          - user
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.virtualNumber.updated
          description: Type is always `com.gigs.virtualNumber.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.voucher.created:
      type: object
      title: com.gigs.voucher.created
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Voucher
          description: Vouchers describe the discounts to apply to quotes and subscriptions.
          properties:
            object:
              type: string
              const: voucher
              description: Type of object is always `voucher`.
            id:
              type: string
              description: Unique identifier for the voucher.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
            createdAt:
              type: string
              format: date-time
              description: Time when the voucher was created.
              examples:
              - '2021-02-14T19:38:34Z'
            name:
              type: string
              description: The voucher's name.
              examples:
              - Black Friday
            priceDiscount:
              type:
              - object
              - 'null'
              description: The price amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              properties:
                amount:
                  type: integer
                  description: The discount amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 1
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            priceDiscountPercentage:
              type:
              - number
              - 'null'
              description: The percentage amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              maximum: 100
              minimum: 1
              examples:
              - 30.12
            recurrence:
              type: object
              description: Details on whether and for how long the discounts applied
                via the voucher recur.
              properties:
                type:
                  type: string
                  enum:
                  - once
                  - repeating
                  - forever
                  description: Whether and how the voucher discount recurs.
                  examples:
                  - once
                durationInMonths:
                  type:
                  - integer
                  - 'null'
                  description: For how many months is the discount applied via the
                    voucher. Only applicable when 'recurrence.type' is 'repeating'.
                  minimum: 1
              required:
              - type
              - durationInMonths
            redemptions:
              type: integer
              description: Number of times the voucher has been redeemed.
              examples:
              - 2
            retiredReason:
              type:
              - 'null'
              - string
              enum:
              -
              - manualAction
              - expired
              - maxRedemptionsReached
              - unknown
              description: Label indicating the reason why the voucher is retired.
            status:
              type: string
              enum:
              - available
              - retired
          required:
          - object
          - id
          - name
          - priceDiscount
          - priceDiscountPercentage
          - recurrence
          - redemptions
          - retiredReason
          - status
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.voucher.created
          description: Type is always `com.gigs.voucher.created`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.voucher.retired:
      type: object
      title: com.gigs.voucher.retired
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Voucher
          description: Vouchers describe the discounts to apply to quotes and subscriptions.
          properties:
            object:
              type: string
              const: voucher
              description: Type of object is always `voucher`.
            id:
              type: string
              description: Unique identifier for the voucher.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
            createdAt:
              type: string
              format: date-time
              description: Time when the voucher was created.
              examples:
              - '2021-02-14T19:38:34Z'
            name:
              type: string
              description: The voucher's name.
              examples:
              - Black Friday
            priceDiscount:
              type:
              - object
              - 'null'
              description: The price amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              properties:
                amount:
                  type: integer
                  description: The discount amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 1
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            priceDiscountPercentage:
              type:
              - number
              - 'null'
              description: The percentage amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              maximum: 100
              minimum: 1
              examples:
              - 30.12
            recurrence:
              type: object
              description: Details on whether and for how long the discounts applied
                via the voucher recur.
              properties:
                type:
                  type: string
                  enum:
                  - once
                  - repeating
                  - forever
                  description: Whether and how the voucher discount recurs.
                  examples:
                  - once
                durationInMonths:
                  type:
                  - integer
                  - 'null'
                  description: For how many months is the discount applied via the
                    voucher. Only applicable when 'recurrence.type' is 'repeating'.
                  minimum: 1
              required:
              - type
              - durationInMonths
            redemptions:
              type: integer
              description: Number of times the voucher has been redeemed.
              examples:
              - 2
            retiredReason:
              type:
              - 'null'
              - string
              enum:
              -
              - manualAction
              - expired
              - maxRedemptionsReached
              - unknown
              description: Label indicating the reason why the voucher is retired.
            status:
              type: string
              enum:
              - available
              - retired
          required:
          - object
          - id
          - name
          - priceDiscount
          - priceDiscountPercentage
          - recurrence
          - redemptions
          - retiredReason
          - status
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.voucher.retired
          description: Type is always `com.gigs.voucher.retired`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
    com.gigs.voucher.updated:
      type: object
      title: com.gigs.voucher.updated
      properties:
        object:
          type: string
          const: event
          description: Type of object is always `event`.
        id:
          type: string
          description: Unique identifier for the event.
          examples:
          - evt_0SNlurA049MEWV5gNTcQ5A07h3Ol
        actor:
          type: object
          title: Actor
          properties:
            apiKey:
              type: string
              description: The unique identifier for the API key.
              examples:
              - apk_0SNlurA049MEWV4wRq2ql6SYZxiY
            member:
              type: string
              description: The unique identifier for the member.
              examples:
              - mbr_0SNlurA020zhzt0CwsIr53
            user:
              type: string
              description: The unique identifier for the user.
              examples:
              - usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
            type:
              type: string
              enum:
              - apiKey
              - member
              - user
              - system
              description: The type of actor.
          required:
          - type
          examples:
          - type: user
            user: usr_0SNlurA049MEWV4OpCwsNyC9Kn2d
          - type: apiKey
            apiKey: apk_0SNlurA049MEWV4wRq2ql6SYZxiY
          - type: member
            member: mbr_0SNlurA020zhzt0CwsIr53
          - type: system
        data:
          type: object
          title: Voucher
          description: Vouchers describe the discounts to apply to quotes and subscriptions.
          properties:
            object:
              type: string
              const: voucher
              description: Type of object is always `voucher`.
            id:
              type: string
              description: Unique identifier for the voucher.
              examples:
              - vou_0SNlurA049MEWV0h2jfjkdiOdplN
            createdAt:
              type: string
              format: date-time
              description: Time when the voucher was created.
              examples:
              - '2021-02-14T19:38:34Z'
            name:
              type: string
              description: The voucher's name.
              examples:
              - Black Friday
            priceDiscount:
              type:
              - object
              - 'null'
              description: The price amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              properties:
                amount:
                  type: integer
                  description: The discount amount in the currency's minor unit, e.g.
                    "cents" for many currencies.
                  minimum: 1
                  examples:
                  - 999
                currency:
                  type: string
                  format: ISO 4217
                  description: Three-letter ISO 4217 currency code. Must be a supported
                    currency.
                  examples:
                  - USD
              required:
              - amount
              - currency
            priceDiscountPercentage:
              type:
              - number
              - 'null'
              description: The percentage amount of the discount applied via the voucher.
                A voucher object has always either a priceDiscount or a priceDiscountPercentage.
              maximum: 100
              minimum: 1
              examples:
              - 30.12
            recurrence:
              type: object
              description: Details on whether and for how long the discounts applied
                via the voucher recur.
              properties:
                type:
                  type: string
                  enum:
                  - once
                  - repeating
                  - forever
                  description: Whether and how the voucher discount recurs.
                  examples:
                  - once
                durationInMonths:
                  type:
                  - integer
                  - 'null'
                  description: For how many months is the discount applied via the
                    voucher. Only applicable when 'recurrence.type' is 'repeating'.
                  minimum: 1
              required:
              - type
              - durationInMonths
            redemptions:
              type: integer
              description: Number of times the voucher has been redeemed.
              examples:
              - 2
            retiredReason:
              type:
              - 'null'
              - string
              enum:
              -
              - manualAction
              - expired
              - maxRedemptionsReached
              - unknown
              description: Label indicating the reason why the voucher is retired.
            status:
              type: string
              enum:
              - available
              - retired
          required:
          - object
          - id
          - name
          - priceDiscount
          - priceDiscountPercentage
          - recurrence
          - redemptions
          - retiredReason
          - status
          - createdAt
        datacontenttype:
          type: string
          default: application/json
          description: The RFC 2046 content-type.
          examples:
          - application/json
        previousData:
          type: object
          description: |
            Present only for events of type `*.updated`. Contains the values fields in
            the schema had prior to the update.

            This field is the result of a shallow diff of the previous schema (i.e., if
            a nested field has changed, then the entire object will be included).
          additionalProperties: true
        project:
          type: string
          description: Unique identifier for the project where the event occurred.
          examples:
          - gigs
        source:
          type: string
          default: https://api.gigs.com
          description: URI identifying the event source.
          examples:
          - https://api.gigs.com
        specversion:
          type: string
          default: '1.0'
          description: The CloudEvents spec version.
          examples:
          - '1.0'
        time:
          type: string
          format: date-time
          description: Time when the event occurred.
          examples:
          - '2022-03-16T14:12:42Z'
        type:
          type: string
          const: com.gigs.voucher.updated
          description: Type is always `com.gigs.voucher.updated`.
        version:
          type: string
          default: '2026-01-29'
          description: API version used to serialize the data and the event itself.
      required:
      - object
      - id
      - actor
      - data
      - datacontenttype
      - project
      - source
      - specversion
      - time
      - type
      - version
      deprecated: false
security: []
