openapi: 3.0.1
info:
  title: Billing API
  description: ""
  version: "1.0"
servers:
  - url: https://apigw.ipxo.com/billing
paths:
  /v1/{tenantUUID}/cart/items:
    post:
      tags:
        - Cart
      summary: Add item to shopping cart
      description: Adds new item to shopping cart. For LOA product type with AWS BYOIP provisioning, include aws_account_id, aws_service, and aws_region in product_fields.
      operationId: API-Pub-Cart-AddItem
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Cart.AddItemRequest"
      responses:
        "204":
          description: Successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-cart-additem
      x-ipxo-group: Cart & checkout
  /v1/common/asn/validate/{asn}:
    get:
      tags:
        - Common
      summary: ASN Validate
      description: ASN Validate
      operationId: API-Pub-Common-ASN-Validate
      parameters:
        - name: asn
          in: path
          description: ASN
          required: true
          schema:
            type: object
            properties:
              asn:
                type: integer
      responses:
        "200":
          description: ASN Validate Resource
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.ASN.ASNResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-asn-validate
      x-ipxo-group: Reference data
  /v1/common/countries:
    get:
      tags:
        - Countries
      summary: Get list of countries
      description: Returns list of countries
      operationId: API-Pub-Common-Countries-List
      responses:
        "200":
          description: Countries resource
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.Countries.CountriesResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-common-countries-list
      x-ipxo-group: Reference data
  /v1/common/industries:
    get:
      tags:
        - Common
      summary: Get list of Tenant Industries
      description: Returns list of Tenant Industries
      operationId: API-Pub-Common-Industries-List
      parameters:
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
        - name: direction
          in: query
          description: Sort Direction
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
      responses:
        "200":
          description: Industries Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.IndustryCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-industries-list
      x-ipxo-group: Reference data
  /v1/common/market/registrars:
    get:
      tags:
        - Common / Market
      summary: List available registrars
      description: Returns available registrars
      operationId: API-Pub-Common-Market-Registrars-List
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.RegistrarCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-market-registrars-list
      x-ipxo-group: Reference data
  /v1/common/market/subnetUsage:
    get:
      tags:
        - Common / Market
      summary: List aggregated subnet usage
      description: Returns subnet usage
      operationId: API-Pub-Common-Market-SubnetUsage
      parameters:
        - name: mask
          in: query
          description: mask
          schema:
            maximum: 24
            minimum: 1
            type: integer
        - name: period
          in: query
          description: time period
          schema:
            type: string
            oneOf:
              - type: string
                format: date_time
              - enum:
                  - now
                type: string
        - name: sort
          in: query
          description: Sort. If direction is not provided defaults to descending.
          schema:
            type: array
            items:
              enum:
                - mask
                - period
              type: string
        - name: direction
          in: query
          description: Sorting direction. If not provided defaults to descending
          schema:
            type: array
            items:
              enum:
                - desc
                - asc
              type: string
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.Statistics.SubnetUsageCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-market-subnetusage
      x-ipxo-group: Reference data
  /v1/common/market/subnetValidity:
    post:
      tags:
        - Common / Market
      summary: Check if prefixes is valid for adding to Market
      description: Check if prefixes is valid for adding to Market
      operationId: API-Pub-Common-Market-subnetValidity
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Common.SubnetValidityRequest"
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.Market.SubnetValidityCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-common-market-subnetvalidity
      x-ipxo-group: Reference data
  /v1/common/slack:
    get:
      tags:
        - Common
      summary: Get Public Slack URL
      description: Get Public Slack URL
      operationId: API-Pub-Common-Slack-Get
      responses:
        "200":
          description: Slack URL Resource
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.Slack.SlackUrlResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-slack-get
      x-ipxo-group: Reference data
  /v1/{tenantUUID}/market/deductions:
    get:
      tags:
        - Deductions
      summary: List Deductions
      description: List IP Market Deductions
      operationId: API-Pub-IPmarket-Deductions-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Deductions.IndexDeductionRequest"
      responses:
        "200":
          description: IP Market Deductions Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Deductions.DeductionResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-deductions-list
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/deductions/invoices/{invoiceUUID}/pdf:
    get:
      tags:
        - Deductions
      summary: Get deduction invoice as PDF
      description: Returns deduction invoice as pdf
      operationId: API-Pub-IPmarket-Invoices-PDF
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: invoiceUUID
          in: path
          description: Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Deduction Invoice
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-invoices-pdf
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/documents/download:
    get:
      tags:
        - Market
      summary: Get LOA-A document PDF
      description: Get LOA-A document PDF
      operationId: API-Pub-IPMarket-Services-Documents-Download
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: LOA-A Documents
          content:
            application/pdf:
              schema:
                type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-services-documents-download
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4:
    get:
      tags:
        - Market
      summary: Search available to buy subnets
      description: Returns available to buy subnets by given filters
      operationId: API-Pub-Market-IPV4-Search
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: cidr
          in: query
          description: CIDR
          required: true
          schema:
            maximum: 24
            minimum: 8
            type: integer
        - name: registrar_uuids[]
          in: query
          description: Array of Registrar UUIDs
          schema:
            maxLength: 24
            minLength: 24
            pattern: ^[a-z0-9]{24}$
            type: string
        - name: reservation_id
          in: query
          description: Commitment Reservation ID
          schema:
            type: string
        - name: limit
          in: query
          description: Limit results to this number
          schema:
            maximum: 1000
            minimum: 10
            type: integer
            default: 100
        - name: sort
          in: query
          description: Sort. If prefixed with a dash, sorts descending
          schema:
            type: array
            items:
              enum:
                - price
                - "-price"
                - address
                - "-address"
              type: string
        - name: price
          in: query
          description: Look for subnets with exact price
          schema:
            minimum: 0
            type: number
            format: float
        - name: price_min
          in: query
          description: Look for subnets above or equal this price. Cannot be used if 'price' parameter is given
          schema:
            minimum: 0
            type: number
            format: float
        - name: price_max
          in: query
          description: Look for subnets below or equal this price. Cannot be used if 'price' parameter is given
          schema:
            minimum: 0
            type: number
            format: float
        - name: geo_databases
          in: query
          description: Specify which databases to check for city/country filters
          schema:
            type: array
            items:
              enum:
                - maxmind
                - ip2location
                - dbip
                - ipinfo
              type: string
        - name: geo_country_code
          in: query
          description: Search subnets by country code
          schema:
            maxLength: 2
            minLength: 2
            type: string
        - name: geo_city_name
          in: query
          description: Search subnets by city name
          schema:
            type: string
        - name: octets
          in: query
          description: Search subnets by octets
          schema:
            maxItems: 4
            minItems: 1
            type: array
            items:
              type: integer
        - name: registry
          in: query
          description: Registrar Name. Optional registrar_uuids or registry.
          schema:
            enum:
              - RIPENCC
              - LACNIC
              - AFRINIC
              - ARIN
              - APNIC
            type: string
        - name: wants_to_negotiate
          in: query
          description: Search subnets by wants to negotiate
          schema:
            type: boolean
        - name: address
          in: query
          description: Address
          schema:
            type: string
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketIPV4Collection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-ipv4-search
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa/download:
    get:
      tags:
        - Market
      summary: Get LOA documents Zip
      description: Get LOA documents Zip
      operationId: API-Pub-IPMarket-IPv4-Services-LOA-Download
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: serviceUUID
          in: path
          description: Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: LOA Documents
          content:
            application/zip:
              schema:
                type: string
        "204":
          description: No Content
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-loa-download
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/csv:
    get:
      tags:
        - Market
      summary: Export to CSV Tenant IPv4 Services
      description: Export to CSV Tenant IPv4 Services
      operationId: API-Pub-IPMarket-IPv4-Services-CSV
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: uuid
          in: query
          description: Filter By IPv4 Service UUID
          schema:
            type: string
        - name: address
          in: query
          description: Filter By IPv4 Service Address
          schema:
            type: string
            format: ipv4
        - name: cidr
          in: query
          description: Filter by IPv4 Service CIDR
          schema:
            type: integer
        - name: registry
          in: query
          description: Filter by IPv4 Service Registry
          schema:
            enum:
              - ripencc
              - arin
            type: string
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
            description: |-
              Expects the value to be list of keys sepparated by commas.
                  Default sort direction for each individual key is ASCENDING, but prefix '-' can be set for each individual key to indicate DESCENDING direction.
                  Valid keys are: [address,cidr,market_service_expiration_date,recurring_amount,billing_cycle,start_date,next_due_date].
                  Example: '-cidr,address' - will sort descendingly by <cidr> first and then by <address> for services with same <cidr>
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: IPv4 Services Collection
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-csv
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services/reserve:
    post:
      tags:
        - Market
      summary: Reserve Subnet
      description: Reserve Subnet
      operationId: API-Pub-IPMarket-IPv4-Services-Reserve
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.ReserveSubnetForCommitmentRequest"
      responses:
        "200":
          description: Success
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-reserve
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services/loa/revoke:
    post:
      tags:
        - Market
      summary: Revoke LOA documents for multiple subnets
      description: Revoke LOA documents for multiple subnets
      operationId: API-Pub-IPMarket-IPv4-Services-LOA-BulkRevoke
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: OK
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-loa-bulkrevoke
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/payment_confirmations:
    get:
      tags:
        - Payouts
      summary: List Payment Confirmations
      description: List Payment Confirmations
      operationId: API-Pub-IPmarket-PaymentConfirmations-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
        - name: confirmation_number
          in: query
          description: Confirmation Number
          schema:
            type: string
        - name: method
          in: query
          description: Method
          schema:
            type: string
        - name: transaction_id
          in: query
          description: Transaction Id
          schema:
            type: string
        - name: from_date
          in: query
          description: From Date
          schema:
            type: integer
        - name: to_date
          in: query
          description: To Date
          schema:
            type: integer
      responses:
        "200":
          description: Confirmation Invoices Collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PaymentConfirmationResource"
                  meta:
                    $ref: "#/components/schemas/collectionMeta"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-paymentconfirmations-list
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}:
    get:
      tags:
        - Payouts
      summary: Get single payment confirmation
      description: Returns single payment confirmation
      operationId: API-Pub-IPmarket-PaymentConfirmations-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: paymentConfirmationUuid
          in: path
          description: Payment Confirmation UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payment Confirmation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PaymentConfirmationResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-paymentconfirmations-show
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payment_confirmations/{paymentConfirmationUuid}/pdf:
    get:
      tags:
        - Payouts
      summary: Get payment confirmation as PDF
      description: Returns payment confirmation as pdf
      operationId: API-Pub-IPmarket-PaymentConfirmations-getPDF
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: paymentConfirmationUuid
          in: path
          description: Payment Confirmation UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payment Confirmation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-paymentconfirmations-getpdf
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payoutmethod:
    get:
      tags:
        - PayoutMethods
      summary: Get Current Payout Method
      description: Get Current Payout Method
      operationId: API-Pub-Market-PayoutMethod-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payout Method
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutMethodResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-payoutmethod-show
      x-ipxo-group: Payouts
    put:
      tags:
        - PayoutMethods
      summary: Set Payout Method
      description: Set Payout Method
      operationId: API-Pub-Market-PayoutMethod-Edit
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.SetPayoutMethodRequest"
      responses:
        "200":
          description: Payout Method
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutMethodResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-payoutmethod-edit
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts:
    get:
      tags:
        - Payouts
      summary: List Payouts
      description: List IP Market Payouts
      operationId: API-Pub-IPmarket-Payouts-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: uuid
          in: query
          description: Filter By Payout UUID
          schema:
            type: string
        - name: service_uuid
          in: query
          description: Filter By Service UUID
          schema:
            type: string
        - name: address
          in: query
          description: Filter By IPv4 Address
          schema:
            type: string
            format: ipv4
        - name: cidr
          in: query
          description: Filter By CIDR
          schema:
            type: integer
        - name: amount
          in: query
          description: Filter By Amount
          schema:
            type: number
            format: float
        - name: total
          in: query
          description: Filter By Total
          schema:
            type: number
            format: float
        - name: lease_count
          in: query
          description: Filter By Lease Count
          schema:
            type: integer
        - name: status
          in: query
          description: Filter by Status
          schema:
            enum:
              - pending
              - completed
              - rejected
              - graph
            type: string
        - name: method
          in: query
          description: Filter By Method
          schema:
            type: string
        - name: start
          in: query
          description: Filter By Start period date in unix timestamp format
          schema:
            type: integer
        - name: end
          in: query
          description: Filter By End period date in unix timestamp format
          schema:
            type: integer
        - name: from
          in: query
          description: Filter by Start period date in unix timestamp format which is greater or equal to input
          schema:
            type: integer
        - name: to
          in: query
          description: Filter By End period date in unix timestamp format which is lower or equal to input
          schema:
            type: integer
        - name: status_date
          in: query
          description: Filter By Status change date in unix timestamp format
          schema:
            type: integer
        - name: created_at
          in: query
          description: Filter By Created date in unix timestamp format
          schema:
            type: integer
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
            description: |-
              Expects the value to be list of keys sepparated by commas.
              Default sort direction for each individual key is ASCENDING, but prefix '-' can be set for each individual key to indicate DESCENDING direction.
              Valid keys are: [address,cidr,market_service_expiration_date,recurring_amount,billing_cycle,start_date,next_due_date].
              Example: '-cidr,address' - will sort descendingly by <cidr> first and then by <address> for services with same <cidr>
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Payout Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutCollection"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payouts-list
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts/{payoutUuid}:
    get:
      tags:
        - Payouts
      summary: Get single payout
      description: Returns single payout identified by target UUID
      operationId: API-Pub-IPmarket-Payouts-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: payoutUuid
          in: path
          description: Payout UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payout
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payouts-show
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts/stats:
    get:
      tags:
        - Payouts
      summary: Get Payouts Statistics
      description: IP Market Payouts Statistics
      operationId: API-Pub-IPmarket-Payouts-Stats
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: service_uuid
          in: query
          description: Filter By Service UUID
          schema:
            type: string
        - name: address
          in: query
          description: Filter By IPv4 Address
          schema:
            type: string
            format: ipv4
        - name: cidr
          in: query
          description: Filter By CIDR
          schema:
            type: integer
        - name: status_date_from
          in: query
          description: Filter by Start period date in unix timestamp format which is greater or equal to input
          schema:
            type: integer
        - name: status_date_to
          in: query
          description: Filter By End period date in unix timestamp format which is lower or equal to input
          schema:
            type: integer
      responses:
        "200":
          description: Payouts Statistics
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutsStatsResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payouts-stats
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices:
    get:
      tags:
        - Payouts
      summary: List Payouts Invoices
      description: List IP Market Payouts Invoices
      operationId: API-Pub-IPmarket-PayoutsInvoices-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: uuid
          in: query
          description: Filter By Payout Invoice UUID
          schema:
            type: string
        - name: invoice_number
          in: query
          description: Filter By Payout Invoice Number
          schema:
            type: string
        - name: service_uuid
          in: query
          description: Filter By Service UUID
          schema:
            type: string
        - name: subnet
          in: query
          description: Filter By Subnet
          schema:
            type: string
        - name: total
          in: query
          description: Filter By Total
          schema:
            type: number
            format: float
        - name: status
          in: query
          description: Filter by Status
          schema:
            enum:
              - paid
              - unpaid
            type: string
        - name: start
          in: query
          description: Filter by Start period date in unix timestamp format which is greater or equal to input
          schema:
            type: integer
        - name: end
          in: query
          description: Filter By End period date in unix timestamp format which is lower or equal to input
          schema:
            type: integer
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
            description: |-
              Expects the value to be list of keys sepparated by commas.
              Default sort direction for each individual key is ASCENDING, but prefix '-' can be set for each individual key to indicate DESCENDING direction.
              Valid keys are: ['invoice_number','status','date','date_paid','total','address','cidr','start','end'].
              Example: '-cidr,address' - will sort descendingly by <cidr> first and then by <address> for services with same <cidr>
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Payout Invoices Collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceResource"
                  meta:
                    $ref: "#/components/schemas/collectionMeta"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-list
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}:
    get:
      tags:
        - Payouts
      summary: Get single payout invoice
      description: Returns single payout invoice
      operationId: API-Pub-IPmarket-PayoutsInvoices-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: payoutInvoiceUuid
          in: path
          description: Payout Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payout
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-show
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/pdf:
    get:
      tags:
        - Payouts
      summary: Get payout invoice as PDF
      description: Returns payout invoice as pdf
      operationId: API-Pub-IPmarket-PayoutsInvoices-getPDF
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: payoutInvoiceUuid
          in: path
          description: Payout Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Payout Invoice
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-getpdf
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices/export/csv:
    get:
      tags:
        - Payouts
      summary: Export payout invoices CSV
      description: Export payout invoices CSV
      operationId: API-Pub-IPmarket-PayoutsInvoices-exportCSV
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Invoice
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-exportcsv
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reputations:
    get:
      tags:
        - Market
      summary: Get IP Market service reputation scan result list
      description: Get IP Market service reputation scan result list
      operationId: API-Pub-IPMarket-Services-Reputation-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: IP Market service reputation scan results list
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IpReputationCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-services-reputation-list
      x-ipxo-group: Subnets & LOA
  /v1/common/pricing/commissions:
    get:
      tags:
        - Common
      summary: Get list of Commission minimum pricings
      description: Get list of Commission minimum pricings
      operationId: API-Pub-Common-Commissions-List
      responses:
        "200":
          description: Commissions Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Common.Pricings.CommissionsCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-commissions-list
      x-ipxo-group: Reference data
  /v1/{tenantUUID}/market/services:
    get:
      tags:
        - Market
      summary: List IP Market Services
      description: List IP Market Services
      operationId: API-Pub-IPMarket-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: include
          in: query
          schema:
            enum:
              - billingServices.marketServicePricing
              - billingServices.commitments
              - commitmentReservations.commitment
              - pendingServiceReservations.pricing
            type: string
        - name: sort
          in: query
          description: Sort
          schema:
            type: array
            items:
              type: string
        - name: filter
          in: query
          description: Filters
          schema:
            type: object
            properties:
              address:
                type: string
              cidr:
                type: integer
              registry:
                type: string
              status:
                type: array
                items:
                  type: string
              hidden:
                type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.ListIPMarketServicesRequest"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceCollection"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-list
      x-ipxo-group: Subnets & LOA
    post:
      tags:
        - Market
      summary: Create IP Market Service
      description: Creates and returns IP Market Service
      operationId: API-Pub-IPMarket-Create
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.AddToMarketRequest"
      responses:
        "201":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceCollection"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-create
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}:
    get:
      tags:
        - Market
      summary: Get IP Market Service
      description: Get IP Market Service
      operationId: API-Pub-Market-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: include
          in: query
          schema:
            enum:
              - billingServices.marketServicePricing
              - billingServices.commitments
              - commitmentReservations.commitment
              - pendingServiceReservations.pricing
            type: string
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-show
      x-ipxo-group: Subnets & LOA
    delete:
      tags:
        - Market
      summary: Cancel IP Market Service
      description: Cancel IP Market Service
      operationId: API-Pub-IPMarket-Terminate
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-terminate
      x-ipxo-group: Subnets & LOA
    patch:
      tags:
        - Market
      summary: Update IP Market Service
      description: Updates and returns IP Market Service
      operationId: API-Pub-IPMarket-Update
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: include
          in: query
          schema:
            enum:
              - billingServices.marketServicePricing
              - billingServices.commitments
              - commitmentReservations.commitment
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.UpdateMarketRequest"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-ipmarket-update
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/status:
    get:
      tags:
        - Market
      summary: Return the status report for service
      description: Return the status report for service
      operationId: API-Pub-Market-Status
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: IP Market Service Status Report
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServiceStatusResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-status
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/expiration:
    delete:
      tags:
        - Market
      summary: Cancel IP Market Service expiration
      description: Cancel IP Market Service expiration
      operationId: API-Pub-IPMarket-Cancel-Expiration
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-cancel-expiration
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/pricing:
    get:
      tags:
        - Market
      summary: List IP Market Service Pricing
      description: List IP Market Service Pricing
      operationId: API-Pub-Market-Pricing
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServicePricingCollection"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-market-pricing
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/resend_verification:
    post:
      tags:
        - Market
      summary: Resend IP Market Service Verification Email
      description: Resend IP Market Service Verification Email
      operationId: API-Pub-IPMarket-ResendVerification
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "406":
          description: Service has no abuse email set!
      x-ipxo-slug: api-pub-ipmarket-resendverification
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/csv:
    get:
      tags:
        - Market
      summary: Export CSV IP Market Services
      description: Export CSV IP Market Services
      operationId: API-Pub-IPMarket-exportToCsv
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.ListIPMarketServicesRequest"
      responses:
        "200":
          description: IP Market Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceCollection"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-exporttocsv
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/reservation_id:
    post:
      tags:
        - Market
      summary: Update The Commitment Reservation ID
      description: Update The Commitment Reservation ID
      operationId: API-Pub-IPMarket-UpdateReservationId
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: remove
          in: query
          description: Remove The Commitment Reservation Id
          schema:
            type: boolean
            default: false
      responses:
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-updatereservationid
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/event_logs:
    get:
      tags:
        - EventLog
      summary: List EventLog
      description: List IP Market EventLog
      operationId: API-Pub-IPmarket-EventLog-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: event
          in: query
          description: Filter by Event Type
          schema:
            enum:
              - pricing_updated
              - pricing_created
              - leased
              - released
              - created
            type: string
        - name: start
          in: query
          description: Filter by Start period date in unix timestamp format which is greater or equal to input
          schema:
            type: integer
        - name: end
          in: query
          description: Filter By End period date in unix timestamp format which is lower or equal to input
          schema:
            type: integer
        - name: sort
          in: query
          description: Sort by key
          schema:
            enum:
              - created_at
            type: string
        - name: label
          in: query
          description: Filter By Subnet label
          schema:
            type: string
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.IPMarket.EventLogResource"
                  meta:
                    $ref: "#/components/schemas/collectionMeta"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-ipmarket-eventlog-list
      x-ipxo-group: Activity log
  /v1/{tenantUUID}/market/services/event_logs:
    get:
      tags:
        - EventLog
      summary: List EventLog
      description: List Tenant IP Market EventLog
      operationId: API-Pub-IPmarket-EventLog-listTenantLogs
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: type
          in: query
          description: Filter by Event Type
          schema:
            enum:
              - pricing_updated
              - pricing_created
              - leased
              - released
              - created
            type: string
        - name: label
          in: query
          description: Filter by subnet label
          schema:
            type: string
        - name: start
          in: query
          description: Filter by Start period date in unix timestamp format which is greater or equal to input
          schema:
            type: integer
        - name: end
          in: query
          description: Filter By End period date in unix timestamp format which is lower or equal to input
          schema:
            type: integer
        - name: sort
          in: query
          description: Sort by key
          schema:
            enum:
              - created_at
            type: string
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.IPMarket.EventLogResource"
                  meta:
                    $ref: "#/components/schemas/collectionMeta"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-ipmarket-eventlog-listtenantlogs
      x-ipxo-group: Activity log
  /v1/{tenantUUID}/invoices:
    get:
      tags:
        - Invoices
      summary: List Tenant Invoices
      description: List Tenant Invoices
      operationId: API-Pub-Invoices-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: invoice_number
          in: query
          description: Filter By Invoice Number (ID)
          schema:
            type: string
        - name: invoice_number_bulk
          in: query
          description: Filter By Invoice Numbers Bulk
          schema:
            type: array
            items: {}
        - name: period_start
          in: query
          description: Filter by Period Start Date Timestamp
          schema:
            type: integer
        - name: period_end
          in: query
          description: Filter by Period End Date Timestamp
          schema:
            type: integer
        - name: statuses
          in: query
          description: Filter by Invoice Statuses
          schema:
            type: array
            items:
              enum:
                - paid
                - unpaid
                - cancelled
                - refunded
                - draft
                - in_review
              type: string
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
        - name: direction
          in: query
          description: Sort Direction
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Invoices Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceListResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-invoices-list
      x-ipxo-group: Invoices
  /v1/{tenantUUID}/invoices/{invoiceUUID}:
    get:
      tags:
        - Invoices
      summary: Get invoice
      description: Returns invoice
      operationId: API-Pub-Invoices-Get
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: invoiceUUID
          in: path
          description: Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Invoice
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-invoices-get
      x-ipxo-group: Invoices
  /v1/{tenantUUID}/invoices/{invoiceUUID}/pdf:
    get:
      tags:
        - Invoices
      summary: Get invoices PDF
      description: Returns invoice pdf
      operationId: API-Pub-Invoices-getPDF
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: invoiceUUID
          in: path
          description: Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Invoice
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-invoices-getpdf
      x-ipxo-group: Invoices
  /v1/{tenantUUID}/invoices/export/pdf:
    get:
      tags:
        - Invoices
      summary: Get multi invoices PDF
      description: Export multi invoices PDF
      operationId: API-Pub-Invoices-exportPdf
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Invoices.ExportInvoicesPDFRequest"
      responses:
        "200":
          description: Invoice
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-invoices-exportpdf
      x-ipxo-group: Invoices
  /v1:
    get:
      tags:
        - Tenants
      summary: Get list of tenants
      description: Returns list of tenants
      operationId: API-Pub-Tenants-List
      responses:
        "200":
          description: Tenants Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-tenants-list
      x-ipxo-group: Account
    post:
      tags:
        - Tenants
      summary: Create Tenant
      description: Create Tenant
      operationId: API-Pub-Tenants-Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Tenants.StoreTenantRequest"
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-tenants-create
      x-ipxo-group: Account
  /v1/{tenantUUID}:
    get:
      tags:
        - Tenants
      summary: Get Single Tenant information
      description: Get Single Tenant information
      operationId: API-Pub-Tenants-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Tenant
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantShowResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-tenants-show
      x-ipxo-group: Account
    patch:
      tags:
        - Tenants
      summary: Update Tenant Information
      description: Update Tenant Information
      operationId: API-Pub-Tenants-Update
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Tenants.UpdateRequest"
      responses:
        "200":
          description: Tenant
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-tenants-update
      x-ipxo-group: Account
  /v1/{tenantUUID}/logo:
    post:
      tags:
        - Tenants
      summary: Upload Tenant Logo
      description: Upload Tenant Logo
      operationId: API-Pub-Tenants-UploadLogo
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                image:
                  type: string
                  description: Tenant Logo Image
                  format: binary
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-tenants-uploadlogo
      x-ipxo-group: Account
    delete:
      tags:
        - Tenants
      summary: Remove Tenant Logo
      description: Remove Tenant Logo
      operationId: API-Pub-Tenants-RemoveLogo
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-tenants-removelogo
      x-ipxo-group: Account
  /v1/common/summary:
    get:
      tags:
        - Tenants
      summary: Get list of tenants with Summary
      description: Returns list of tenants with Summary
      operationId: API-Pub-Tenants-Summary
      responses:
        "200":
          description: Tenants With Summary Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantWithSummaryCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-tenants-summary
      x-ipxo-group: Account
  /v1/{tenantUUID}/market/ipv4/quarantine:
    get:
      tags:
        - Quarantine
      summary: List Subnets In Quarantine
      description: List Subnets In Quarantine
      operationId: API-Pub-IPmarket-Quarantine-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
        - name: direction
          in: query
          description: Sort Direction
          schema:
            enum:
              - asc
              - desc
            type: string
            default: desc
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Quarantine.IndexQuarantineRequest"
      responses:
        "200":
          description: Subnets in quarantine collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Quarantine.QuarantineResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-quarantine-list
      x-ipxo-group: IPv6 & quarantine
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/leased:
    get:
      tags:
        - Common
      summary: Get list of service leased pricings
      description: Get list of service leased pricings
      operationId: API-Pub-Common-Services-Leased-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Leased service resource
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.LeasedServiceResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-common-services-leased-list
      x-ipxo-group: Reference data
  /v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/geodata:
    get:
      tags:
        - Market
      summary: IPv4 Service Geodata
      description: IPv4 Service Geodata
      operationId: API-Pub-IPMarket-IPv4-Services-Geodata
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: serviceUUID
          in: path
          description: Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Success
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-geodata
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/loa:
    get:
      tags:
        - Market
      summary: List of Billing Service LOA documents
      description: List of Billing Service LOA documents
      operationId: API-Pub-IPMarket-IPv4-Services-LOA-Index
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: serviceUUID
          in: path
          description: Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: statuses
          in: query
          description: Filter By LOA Document Statuses
          schema:
            type: array
            items:
              enum:
                - Active
                - Pending
                - Terminated
              type: string
      responses:
        "200":
          description: List of Billing Service LOA documents
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.Services.LOAReassignDocumentResource"
                  meta:
                    $ref: "#/components/schemas/collectionMeta"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-loa-index
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services/{serviceUUID}:
    get:
      tags:
        - Market
      summary: Billing Terminate Request
      description: Billing Terminate Request
      operationId: API-Pub-IPMarket-IPv4-Services-Show
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: serviceUUID
          in: path
          description: Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Success
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-show
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/services:
    get:
      tags:
        - Market
      summary: List Tenant IPv4 Services
      description: List Tenant IPv4 Services
      operationId: API-Pub-IPMarket-IPv4-Services-Index
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: uuid
          in: query
          description: Filter By IPv4 Service UUID
          schema:
            type: string
        - name: address
          in: query
          description: Filter By IPv4 Service Address
          schema:
            type: string
            format: ipv4
        - name: cidr
          in: query
          description: Filter by IPv4 Service CIDR
          schema:
            type: integer
        - name: registry
          in: query
          description: Filter by IPv4 Service Registry
          schema:
            enum:
              - ripencc
              - arin
              - afrinic
              - lacnic
              - apnic
            type: string
        - name: status
          in: query
          description: Search by Subnet status
          schema:
            type: array
            items:
              enum:
                - pending
                - active
                - suspended
                - terminated
              type: string
        - name: display
          in: query
          description: Search by Subnet Display status
          schema:
            type: array
            items:
              enum:
                - assigned
                - unassigned
              type: string
        - name: sort
          in: query
          description: Sort By Key
          schema:
            type: string
            description: |-
              Expects the value to be list of keys sepparated by commas.
                  Default sort direction for each individual key is ASCENDING, but prefix '-' can be set for each individual key to indicate DESCENDING direction.
                  Valid keys are: [address,cidr,market_service_expiration_date,recurring_amount,billing_cycle,start_date,next_due_date].
                  Example: '-cidr,address' - will sort descendingly by <cidr> first and then by <address> for services with same <cidr>
        - name: direction
          in: query
          description: Sorting direction
          schema:
            type: array
            items:
              enum:
                - asc
                - desc
              type: string
        - name: asn
          in: query
          description: Filter by asn
          schema:
            type: integer
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: IPv4 Services Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Services.IPv4ServicesListResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-ipv4-services-index
      x-ipxo-group: Subnets & LOA
  /v1/common/market_auth_verify/{token}:
    get:
      tags:
        - Common
      summary: Market Service verification
      description: Market Service verification
      operationId: API-Pub-Market-ServiceVerify
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Successful operation
        "404":
          description: Verification token not found
        "500":
          description: Internal Server Error
      x-ipxo-slug: api-pub-market-serviceverify
      x-ipxo-group: Reference data
  /v1/common/termination-reasons:
    get:
      tags:
        - Common
      summary: List Services Terminations Reasons
      description: List of termination reasons for services
      operationId: API-Pub-Common-TerminationReasons-List
      responses:
        "200":
          description: Services terminations reasons Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Services.TerminationReasonsResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-common-terminationreasons-list
      x-ipxo-group: Reference data
  /v1/{tenantUUID}/market/ipv4/services/{serviceUUID}/immediate-termination:
    post:
      tags:
        - Market
      summary: Immediate termination request for IPv4 Service
      description: Immediate termination request for IPv4 Service
      operationId: API-Pub-IPv4-Services-ImmediateTermination
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: serviceUUID
          in: path
          description: Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPMarket.IPV4ImmediateTerminationRequest"
      responses:
        "200":
          description: Success
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-ipv4-services-immediatetermination
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/details:
    get:
      tags:
        - Tenants
      summary: Get Tenants Details
      description: Returns tenants Details
      operationId: API-Pub-Tenants-Details
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Tenant Details
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Tenants.SummaryShortResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-tenants-details
      x-ipxo-group: Account
  /v1/{tenantUUID}/batches:
    get:
      tags:
        - Batches
      summary: Get list of batches
      description: Returns list of batches
      operationId: API-Pub-Batches-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: filter
          in: query
          description: Filters
          schema:
            type: object
            properties:
              id:
                type: string
        - name: include
          in: query
          description: Include relations
          schema:
            type: array
            items:
              type: string
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Batches Collection
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.Jobs.BatchesResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-batches-list
      x-ipxo-group: IPv6 & quarantine
  /v1/{tenantUUID}/market/services/{ipmarketServiceUUID}/ipv4/hidden/children:
    get:
      tags:
        - Market
      summary: Search hidden children subnets
      description: Returns hidden children subnets for market service
      operationId: API-Pub-Market-IPV4-Hidden-Children
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: ipmarketServiceUUID
          in: path
          description: IPMarket Service UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: mask
          in: query
          description: Filter by mask
          schema:
            type: integer
        - name: address
          in: query
          description: Filter by address
          schema:
            type: string
        - name: page
          in: query
          description: List Page
          schema:
            type: integer
            default: 1
        - name: per_page
          in: query
          description: Items Per Page
          schema:
            type: integer
            default: 15
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.HiddenIPV4ChildResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-ipv4-hidden-children
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/child/toggle:
    post:
      tags:
        - Market
      summary: Hide or unhide child subnets
      description: Hide or unhide child subnets
      operationId: API-Pub-Market-IPV4-Child-Toggle
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Market.IPV4.ToggleChildIPV4Request"
      responses:
        "200":
          description: Batch id
          content:
            application/json:
              schema:
                type: object
                properties:
                  batchId:
                    type: string
                    description: The ID of the batch
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-market-ipv4-child-toggle
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/ipv4/child/search:
    get:
      tags:
        - Market
      summary: Search subnet child
      description: Search subnet child
      operationId: API-Pub-Market-IPV4-Child-Search
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: address
          in: query
          description: IPV4 child address
          required: true
          schema:
            type: string
        - name: cidr
          in: query
          description: IPV4 child  cidr
          required: true
          schema:
            type: integer
        - name: market_service_uuid
          in: query
          description: Parent IPV4 ip market service uuid
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ChildIPV4Resource"
      responses:
        "200":
          description: Billing Service
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ChildIPV4Resource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-market-ipv4-child-search
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/ipv6/request:
    post:
      tags:
        - IPV6
      summary: Request IPV6
      description: Request IPV6
      operationId: API-Pub-IPV6-Request
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.IPV6.Request"
      responses:
        "204":
          description: Response status code
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
        "422":
          description: Unprocessable Entity
      x-ipxo-slug: api-pub-ipv6-request
      x-ipxo-group: IPv6 & quarantine
  /v1/{tenantUUID}/market/search:
    get:
      tags:
        - Market
      summary: Search available subnets
      description: Returns available subnets by given filters
      operationId: API-Pub-Market-Search
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: prefix_length
          in: query
          description: Prefix Length
          required: true
          schema:
            maximum: 24
            minimum: 8
            type: integer
        - name: reservation_id
          in: query
          description: Commitment Reservation ID
          schema:
            type: string
        - name: limit
          in: query
          description: Limit results to this number
          schema:
            maximum: 1000
            minimum: 1
            type: integer
            default: 100
        - name: octets
          in: query
          description: Search subnets by octets
          schema:
            maxItems: 3
            minItems: 1
            type: array
            items:
              maximum: 255
              minimum: 8
              type: integer
        - name: address
          in: query
          description: Address
          schema:
            type: string
        - name: registrars
          in: query
          description: Registrar Name. Optional registrar_uuids or registry.
          schema:
            type: array
            items:
              enum:
                - afrinic
                - apnic
                - arin
                - lacnic
                - ripencc
              type: string
        - name: sort
          in: query
          description: Sort. If prefixed with a dash, sorts descending
          schema:
            type: array
            items:
              enum:
                - price
                - "-price"
                - address
                - "-address"
              type: string
        - name: geo_providers
          in: query
          description: Geolocation providers to use for country/city filters
          schema:
            type: array
            items:
              enum:
                - maxmind
                - ip2location
                - dbip
                - ipinfo
                - ipgeolocation
                - ipregistry
              type: string
        - name: geo_country_code
          in: query
          description: Geolocation filter by country code
          schema:
            maxLength: 2
            minLength: 2
            type: string
        - name: geo_city_name
          in: query
          description: Geolocation filter by city name
          schema:
            type: string
        - name: geo_provider_match_type
          in: query
          description: Match type for geo filter
          schema:
            enum:
              - and
              - or
            type: string
            default: or
        - name: price_min
          in: query
          description: Price filter (min)
          schema:
            minimum: 0
            type: number
            format: float
        - name: price_max
          in: query
          description: Price filter (max)
          schema:
            minimum: 0
            type: number
            format: float
        - name: price_negotiable
          in: query
          description: Price filter for if price is negotiable
          schema:
            type: boolean
        - name: capabilities_rpki
          in: query
          description: Subnet RPKI Capability status
          schema:
            enum:
              - automated
              - manual
              - unsupported
            type: string
        - name: capabilities_whois_inetnum
          in: query
          description: Subnet WHOIS Inetnum Capability status
          schema:
            enum:
              - automated
              - manual
              - unsupported
            type: string
        - name: capabilities_whois_routes
          in: query
          description: Subnet WHOIS Routes Capability status
          schema:
            enum:
              - automated
              - manual
              - unsupported
            type: string
        - name: capabilities_whois_rdns
          in: query
          description: Subnet WHOIS RDNS Capability status
          schema:
            enum:
              - automated
              - manual
              - unsupported
            type: string
        - name: promotional
          in: query
          description: Filter for promotional/featured subnets
          schema:
            type: boolean
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.MarketSearchCollection"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-market-search
      x-ipxo-group: Subnets & LOA
  /v1/{tenantUUID}/market/payouts/stats/v2:
    get:
      tags:
        - Payouts
      summary: Get Payout Invoice Statistics (v2)
      description: IP Market Payout Invoice Statistics with detailed breakdown. Add pagination params for table view.
      operationId: API-Pub-IPmarket-Payouts-StatsV2
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: period_start_date
          in: query
          description: Filter by start period in YYYY-MM-DD format (e.g., 2025-01-15)
          schema:
            pattern: ^\d{4}-\d{2}-\d{2}$
            type: string
        - name: period_end_date
          in: query
          description: Filter by end period in YYYY-MM-DD format (e.g., 2025-03-31)
          schema:
            pattern: ^\d{4}-\d{2}-\d{2}$
            type: string
        - name: status
          in: query
          description: Filter by payout invoice status
          schema:
            enum:
              - unpaid
              - paid
            type: string
        - name: sort
          in: query
          description: Sort field (prefix with - for descending, e.g., -date_paid). Optional, only used with pagination.
          schema:
            type: string
        - name: page
          in: query
          description: Page number for pagination. When provided, response will be paginated.
          schema:
            minimum: 1
            type: integer
        - name: per_page
          in: query
          description: "Items per page (default: 15, max: 100). Only used when page is provided."
          schema:
            maximum: 100
            minimum: 1
            type: integer
      responses:
        "200":
          description: Payout Invoice Statistics
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceStatsResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payouts-statsv2
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts/stats/v2/export:
    get:
      tags:
        - Payouts
      summary: Export Payout Invoice Statistics to CSV
      description: Export IP Market Payout Invoice Statistics with detailed breakdown as CSV file
      operationId: API-Pub-IPmarket-Payouts-StatsV2Export
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: period_start_date
          in: query
          description: Filter by start period in YYYY-MM-DD format (e.g., 2025-01-15)
          schema:
            pattern: ^\d{4}-\d{2}-\d{2}$
            type: string
        - name: period_end_date
          in: query
          description: Filter by end period in YYYY-MM-DD format (e.g., 2025-03-31)
          schema:
            pattern: ^\d{4}-\d{2}-\d{2}$
            type: string
        - name: status
          in: query
          description: Filter by payout invoice status
          schema:
            enum:
              - unpaid
              - paid
            type: string
      responses:
        "200":
          description: CSV file with payout invoice statistics
          content:
            text/csv:
              schema:
                type: string
                format: binary
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payouts-statsv2export
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/stats:
    get:
      tags:
        - Payouts
      summary: Get Self-Billing Invoice Statistics
      description: Get detailed statistics for a specific self-billing (payout) invoice
      operationId: API-Pub-IPmarket-PayoutsInvoices-Stats
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: payoutInvoiceUuid
          in: path
          description: Payout Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: Self-Billing Invoice Statistics
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceStatsResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-stats
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/market/payouts_invoices/{payoutInvoiceUuid}/items:
    get:
      tags:
        - Payouts
      summary: Get Self-Billing Invoice Lease Items
      description: Get detailed breakdown of individual lease items within a self-billing (payout) invoice
      operationId: API-Pub-IPmarket-PayoutsInvoices-Items
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: payoutInvoiceUuid
          in: path
          description: Payout Invoice UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: sort
          in: query
          description: Sort field (prefix with - for descending)
          schema:
            type: string
        - name: page
          in: query
          description: Page number for pagination
          schema:
            minimum: 1
            type: integer
        - name: per_page
          in: query
          description: "Items per page (default: 15, max: 100)"
          schema:
            maximum: 100
            minimum: 1
            type: integer
      responses:
        "200":
          description: Self-Billing Invoice Lease Items
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceLeaseItemsResource"
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
      x-ipxo-slug: api-pub-ipmarket-payoutsinvoices-items
      x-ipxo-group: Payouts
  /v1/{tenantUUID}/asn/validate/{asn}:
    post:
      tags:
        - Common
      summary: Validate subnets for ASN
      description: Validates which subnets can be added to cart with the given ASN
      operationId: API-Pub-Tenant-ASN-ValidateSubnets
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: asn
          in: path
          description: ASN
          required: true
          schema:
            type: object
            properties:
              asn:
                type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.ASN.TenantASNValidateRequest"
      responses:
        "200":
          description: Subnet validation results
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API.Pub.Resources.ASN.ASNValidationResultsResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: ASN Not Found
        "422":
          description: Validation Error
      x-ipxo-slug: api-pub-tenant-asn-validatesubnets
      x-ipxo-group: Reference data
  /v1/{tenantUUID}/integrations/aws/connected-accounts:
    get:
      tags:
        - Integrations
      summary: Get list of AWS connected accounts
      description: Returns list of AWS connected accounts for the tenant
      operationId: API-Pub-Integrations-Aws-ConnectedAccounts-List
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      responses:
        "200":
          description: AWS Connected Accounts List
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: string
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      x-ipxo-slug: api-pub-integrations-aws-connectedaccounts-list
      x-ipxo-group: Account
  /v1/{tenantUUID}/cart/{cartUUID}/extra-info:
    get:
      tags:
        - Cart
      summary: Get cart extra information
      description: Returns extra information for all items in the specified cart
      operationId: API-Pub-Cart-GetExtraInfo
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
        - name: cartUUID
          in: path
          description: Cart UUID
          required: true
          schema:
            type: string
            format: uuid
      responses:
        "200":
          description: Cart items extra information collection
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: "#/components/schemas/API.Pub.Resources.Cart.CartLineInfoResource"
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Cart not found
      x-ipxo-slug: api-pub-cart-getextrainfo
      x-ipxo-group: Cart & checkout
  /v1/{tenantUUID}/email_verification/initiate:
    post:
      tags:
        - Tenants
      summary: Initiate email verification
      description: Initiate email verification
      operationId: API-Pub-Tenants-Verification-Initiate
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Tenants.Verification.Initiate"
      responses:
        "200":
          description: Verification initiated
        "400":
          description: Bad Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "409":
          description: Email is already verified
      x-ipxo-slug: api-pub-tenants-verification-initiate
      x-ipxo-group: Account
  /v1/{tenantUUID}/email_verification/verify:
    post:
      tags:
        - Tenants
      summary: Verify email
      description: Verify email
      operationId: API-Pub-Tenants-Verification-Verify
      parameters:
        - name: tenantUUID
          in: path
          description: Tenant UUID
          required: true
          schema:
            $ref: "#/components/schemas/UUID"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API.Pub.Requests.Tenants.Verification.Verify"
      responses:
        "200":
          description: Email verified successfully
        "400":
          description: Invalid Request
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "409":
          description: Email is already verified
      x-ipxo-slug: api-pub-tenants-verification-verify
      x-ipxo-group: Account
components:
  schemas:
    UUID:
      pattern: ^[a-zA-Z0-9]{8}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{4}\-[a-zA-Z0-9]{12}$
      type: string
      description: UUID
    Mixed:
      oneOf:
        - type: string
        - type: integer
        - type: number
          format: float
        - type: boolean
        - type: object
        - type: array
          items:
            $ref: "#/components/schemas/Mixed"
    collectionMeta:
      type: object
      properties:
        current_page:
          type: integer
        from:
          type: integer
        last_page:
          type: integer
        per_page:
          type: integer
        to:
          type: integer
        total:
          type: integer
    ipRepValidatorCollectionMeta:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        count:
          type: integer
    geodata:
      type: object
      properties:
        cityName:
          type: string
        countryCode:
          type: string
        countryName:
          type: string
        date:
          type: string
    API.Pub.Requests.IPMarket.SubnetUsageRequest:
      type: object
      properties:
        mask:
          type: integer
        period:
          oneOf:
            - type: string
              format: date_time
            - enum:
                - now
              type: string
    API.Pub.Requests.ASN.TenantASNValidateRequest:
      required:
        - subnets
      type: object
      properties:
        subnets:
          type: array
          items:
            type: string
    API.Pub.Requests.Cart.AddItemRequest:
      required:
        - product_type
        - billing_cycle
      type: object
      properties:
        product_type:
          enum:
            - ipv4
            - ipv6
            - loa
            - asn
          type: string
          description: Product Type
        billing_cycle:
          enum:
            - 0
            - 1
            - 3
            - 6
            - 12
            - 24
          type: integer
          description: Billing Cycle
        label:
          type: string
          description: Service label
        product_options:
          type: object
          properties:
            quantity:
              type: object
              properties:
                <key1>:
                  type: integer
                <key2>:
                  type: integer
                <key..>:
                  type: integer
                <keyN>:
                  type: integer
            selection:
              type: object
              properties:
                <key1>:
                  type: string
                <key2>:
                  type: string
                <key..>:
                  type: string
                <keyN>:
                  type: string
          description: |-
            Product options are different per product.
                                     Please lookup the options from the respective product endpoint
        product_fields:
          type: object
          properties:
            <key1>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
            <key2>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
            <key..>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
            <keyN>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
            aws_account_id:
              type: string
              description: AWS account ID for BYOIP provisioning (LOA only)
            aws_service:
              type: string
              description: AWS service for BYOIP provisioning (LOA only)
            aws_region:
              type: string
              description: AWS region for BYOIP provisioning (LOA only)
          description: |-
            Product fields are different per product, and requirements differ.
                                     Please lookup the needed fields from the respective product endpoint
                                     e.g. `/v1/{tenantUUID}/market/ipv4/product-info` for `ipv4`.
                                     For LOA product type with AWS BYOIP, include aws_account_id, aws_service, and aws_region.
    API.Pub.Requests.Common.ListServicePricingRequest:
      type: object
      properties:
        prefix_length:
          type: integer
          description: Prefix Length
        monthly_price_from:
          type: number
          description: Monthly Price From
          format: float
        monthly_price_to:
          type: number
          description: Monthly Price To
          format: float
        page:
          type: integer
          description: Page
        per_page:
          type: integer
          description: Per Page
        sort:
          type: string
          description: Sort By Field
        direction:
          enum:
            - asc
            - desc
          type: string
          description: Sort Direction
    API.Pub.Requests.Common.SubnetValidityRequest:
      required:
        - prefixes
      type: object
      properties:
        prefixes:
          type: array
          items:
            type: string
    API.Pub.Requests.Deductions.IndexDeductionRequest:
      type: object
      properties:
        subnet:
          type: string
          description: Filter by IP
        status:
          enum:
            - completed
            - cancelled
            - pending
          type: string
          description: Filter by status
        created_at:
          type: integer
          description: Filter by created_at date
        sort:
          type: string
          description: Sort by date field
        direction:
          enum:
            - asc
            - desc
          type: string
          description: Sort direction
        payout_uuid:
          type: string
          description: Filter by payout invoice UUID
          format: uuid
        invoice_uuid:
          type: string
          description: Filter by deduction invoice UUID
          format: uuid
    API.Pub.Requests.IPMarket.AddToMarketRequest:
      required:
        - address
        - cidr
        - regions
        - pricings
        - tos_accepted
        - subnet_actions_accepted
      type: object
      properties:
        subnets:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                description: Subnet Address
              cidr:
                type: integer
                description: Subnet CIDR
              minimum_split:
                type: integer
              maximum_split:
                type: integer
              pricings:
                type: array
                items:
                  type: object
                  properties:
                    cidr:
                      type: integer
                    value:
                      type: number
                      format: float
                    wants_to_negotiate:
                      type: boolean
                    selected_commitment_periods:
                      type: array
                      items:
                        enum:
                          - 3
                          - 6
                          - 12
                          - 24
                          - 36
                          - 60
                          - 120
                        type: integer
                      description: Commitment period in months
                description: "list of allowed to purchase CIDR pricings. Example: {'/30': 3.21, '/32': 1.23}"
              hidden:
                type: boolean
              maintainer_id:
                type: string
                description: APNIC maintainer ID
              maintainer_password:
                type: string
                description: APNIC maintainer password
              registry:
                type: string
                description: Registry name, e.g. apnic
        tos_accepted:
          type: boolean
        subnet_actions_accepted:
          type: boolean
    API.Pub.Requests.IPMarket.ExportPayoutInvoicesCSVRequest: {}
    API.Pub.Requests.IPMarket.IPV4ImmediateTerminationRequest:
      required:
        - use_again
        - reason
        - description
      type: object
      properties:
        description:
          type: string
          description: Termination reason description
        use_again:
          type: boolean
        reason:
          type: string
          format: uuid
    API.Pub.Requests.EventLog.ListEventLogRequest:
      type: object
      properties:
        page:
          type: number
          description: Page
          format: integer
        per_page:
          type: number
          description: Per Page
          format: integer
        sort:
          enum:
            - created_at
          type: string
          description: Sort
        direction:
          type: string
          description: Direction
        event:
          enum:
            - pricing_updated
            - pricing_created
            - leased
            - released
            - created
          type: string
          description: Event
        start:
          type: number
          description: Start
          format: integer
        end:
          type: number
          description: End
          format: integer
        label:
          type: string
          description: Subnet label
    API.Pub.Market.IPV4.ListHiddenChildsRequest:
      required:
        - market_service_uuid
        - page
        - per_page
    API.Pub.Requests.IPMarket.ListIPMarketServicesRequest:
      type: object
      properties:
        cidr:
          maximum: 24
          minimum: 8
          type: integer
          description: CIDR
        address:
          type: string
          description: IP Address
        hidden:
          type: boolean
          description: Show only Subnets hidden from market
        status:
          type: array
          items:
            enum:
              - auth_pending
              - auth_failed_verify
              - auth_failed_verify_email_not_found
              - auth_failed_verify_email_not_sent
              - validity_pending
              - validity_active
              - validity_invalid
              - validity_terminated
              - validity_unknown
              - object_terminated
            type: string
            description: Search by Subnet status
        registry:
          type: string
          description: Registry
        sort:
          type: array
          items:
            enum:
              - cidr
              - created_at
              - status
              - hidden
              - expires_at
              - "-cidr"
              - "-created_at"
              - "-status"
              - "-hidden"
              - "-expires_at"
            type: string
    API.Pub.Requests.IPMarket.ListIpReputationRequest:
      required:
        - per_page
        - page
      type: object
      properties:
        ip:
          type: string
          description: IP
        limit:
          type: integer
          description: Limit
        offset:
          type: integer
          description: Offset
        country_code:
          type: string
          description: Country code
        detection_rate:
          type: string
          description: Detection rate
        detections:
          type: string
          description: Detections
        detections_engine_list:
          type: string
          description: Detections engine list
        engines_count:
          type: integer
          description: Engines count
        is_listed:
          type: integer
          description: Is listed
        is_proxy:
          type: integer
          description: Is proxy
        is_tor:
          type: integer
          description: Is TOR
        is_vpn:
          type: integer
          description: Is VPN
        isp:
          type: string
          description: ISP
        reverse_dns:
          type: string
          description: Reverse DNS
        created:
          type: string
          description: Created
    API.Pub.Requests.EventLog.ListTenantEventLogRequest: {}
    API.Pub.Requests.IPMarket.PayoutMethodSetCreditRequest:
      required:
        - cycle_id
      type: object
      properties:
        cycle_id:
          enum:
            - 0
            - 1
            - 3
            - 6
            - 12
          type: integer
        minimal_amount:
          type: number
          format: float
    API.Pub.Requests.Products.InfoRequest:
      required:
        - productType
      type: object
      properties:
        productType:
          enum:
            - ipv4
            - loa
          type: string
    API.Pub.Requests.IPMarket.ReserveSubnetForCommitmentRequest:
      required:
        - pricing_uuid
        - address
        - cidr
        - ip_price
        - contract_length
      type: object
      properties:
        pricing_uuid:
          type: string
          format: uuid
        address:
          type: string
        cidr:
          maximum: 24
          minimum: 1
          type: integer
        ip_price:
          type: string
        contract_length:
          type: integer
    API.Pub.Requests.IPMarket.ReverseDNSCreateRecordsRequest:
      required:
        - subnets
      type: object
      properties:
        subnets:
          type: array
          items:
            required:
              - prefix
            type: object
            properties:
              prefix:
                type: string
                description: IPv4 prefix
              records:
                type: array
                items:
                  required:
                    - address
                    - dname
                  type: object
                  properties:
                    address:
                      type: string
                      format: ipv4
                    dname:
                      type: string
                    ttl:
                      type: integer
    API.Pub.Requests.IPMarket.ReverseDNSDeleteRecordsRequest:
      required:
        - subnets
      type: object
      properties:
        subnets:
          type: array
          items:
            required:
              - prefix
            type: object
            properties:
              prefix:
                type: string
                description: IPv4 prefix
              records:
                type: array
                items:
                  required:
                    - address
                    - dname
                  type: object
                  properties:
                    address:
                      type: string
                      format: ipv4
    API.Pub.Market.IPV4.SearchChildIPV4Request:
      required:
        - market_service_uuid
        - address
        - cidr
    API.Pub.Requests.IPMarket.SetPayoutMethodRequest:
      required:
        - type
        - cycle
      type: object
      properties:
        details:
          type: object
          properties:
            beneficiary:
              type: string
            address:
              type: string
            bic:
              type: string
            iban:
              type: string
            bank_name:
              type: string
            email:
              type: string
            note:
              type: string
          description: Details
        type:
          enum:
            - banktransfer
            - credit
            - paypal
          type: string
        cycle:
          enum:
            - 0
            - 1
            - 3
            - 6
            - 12
          type: integer
        minimal_amount:
          type: number
          format: float
    API.Pub.Market.IPV4.ToggleChildIPV4Request:
      required:
        - market_service_uuid
        - childs
        - cidr
      type: object
      properties:
        childs:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
        market_service_uuid:
          type: string
          format: uuid
        cidr:
          type: integer
        reason:
          type: string
    API.Pub.Requests.IPMarket.UpdateMarketRequest:
      type: object
      properties:
        hidden:
          type: boolean
        minimum_split:
          type: integer
        maximum_split:
          type: integer
        pricings:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              cidr:
                type: integer
              value:
                type: number
                format: float
              wants_to_negotiate:
                type: boolean
              selected_commitment_periods:
                type: array
                items:
                  enum:
                    - 3
                    - 6
                    - 12
                    - 24
                    - 36
                    - 60
                    - 120
                  type: integer
                description: Commitment period in months
                nullable: true
          description: "list of allowed to purchase CIDR pricings. Example: {'/30': 3.21, '/32': 1.23}"
        maintainer_id:
          type: string
          description: APNIC maintainer ID
        maintainer_password:
          type: string
          description: APNIC maintainer password
    API.Pub.Requests.IPV6.Request:
      required:
        - asn
        - tos_accepted
    API.Pub.Requests.Industries.IndexIndustriesRequest:
      type: object
      properties:
        sort:
          type: string
          description: Sort field
        direction:
          enum:
            - asc
            - desc
          type: string
          description: Sort direction
    API.Pub.Requests.Quarantine.IndexQuarantineRequest: {}
    API.Pub.Requests.Tenants.Verification.Initiate:
      required:
        - email_type
      type: object
      properties:
        email_type:
          enum:
            - email
            - abuse_email
          type: string
    API.Pub.Requests.Tenants.StoreTenantRequest:
      required:
        - title
        - email
        - address1
        - city
        - country
        - postcode
        - state
        - abuse_email
      type: object
      properties:
        title:
          type: string
        email:
          type: string
        business_since:
          type: string
        company_size:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        country:
          type: string
        postcode:
          type: string
        state:
          type: string
        abuse_email:
          type: string
        vat_number:
          type: string
        industry_uuid:
          type: string
          format: uuid
        reuse_address:
          type: boolean
        options:
          type: object
          properties:
            website:
              type: string
            social_network:
              type: array
              items:
                type: string
            has_social_network:
              type: boolean
            found_us:
              type: string
            primary_intention:
              type: string
            proprata:
              type: boolean
            prorata_day:
              type: integer
              description: Tenant Option Prorata Day
    API.Pub.Requests.Tenants.UpdateRequest:
      type: object
      properties:
        title:
          type: string
        email:
          type: string
        business_since:
          type: string
        company_size:
          type: string
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        postcode:
          type: string
        state:
          type: string
        abuse_email:
          type: string
        vat_number:
          type: string
        industry_uuid:
          type: string
          format: uuid
        options:
          type: array
          items:
            type: object
            properties:
              website:
                type: string
              has_website:
                type: boolean
              social_network:
                type: array
                items:
                  type: string
              has_social_network:
                type: boolean
              found_us:
                type: string
              proprata:
                type: boolean
              prorata_day:
                type: integer
                description: Tenant Option Prorata Day
    API.Pub.Requests.Tenants.Verification.Verify:
      required:
        - email_type
        - code
      type: object
      properties:
        email_type:
          enum:
            - email
            - abuse_email
          type: string
        code:
          type: string
    API.Pub.Resources.ASN.ASNValidationResultsResource:
      type: object
      properties:
        asn:
          type: integer
        valid:
          type: boolean
        as_name:
          type: string
        uce3:
          type: boolean
        ofac:
          type: boolean
        spamhaus:
          type: boolean
        country:
          type: string
        status:
          type: string
        subnets:
          type: array
          items:
            type: object
            properties:
              subnet:
                type: string
              already_added:
                type: boolean
    API.Pub.Resources.Cart.CartLineInfoResource:
      title: Cart Line Info Resource
      type: object
      properties:
        cart_line_uuid:
          type: string
          description: Cart line UUID
          format: uuid
        extra:
          type: object
          description: Extra information object
        product_type:
          type: string
          description: Product type
          nullable: true
      description: Cart line extra information
    API.Pub.Resources.Common.ASN.ASNResource:
      type: object
      properties:
        asn:
          type: integer
        valid:
          type: boolean
        as_name:
          type: string
        uce3:
          type: boolean
        ofac:
          type: boolean
        spamhaus:
          type: boolean
        country:
          type: string
        status:
          type: string
    API.Pub.Resources.Common.Countries.CountriesCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Common.Countries.CountriesResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.Common.Countries.CountriesResource:
      type: object
      properties:
        uuid:
          type: string
        alpha_2_code:
          type: string
        alpha_3_code:
          type: string
        name:
          type: string
        phone_code:
          type: string
        tenant_availability:
          type: boolean
        ofac_listed:
          type: boolean
        states:
          type: object
          properties:
            state_code1:
              type: string
            state_code2:
              type: string
            state_code..:
              type: string
            state_codeN:
              type: string
          description: map of state_code => state_name
    API.Pub.Resources.Common.Market.SubnetValidityCollection:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Common.Market.SubnetValidityResource"
    API.Pub.Resources.Common.Market.SubnetValidityResource:
      type: object
      properties:
        address:
          type: string
        cidr:
          type: integer
        status:
          type: boolean
        message:
          type: string
        minimum_split:
          type: integer
        maximum_split:
          type: integer
        registry:
          type: string
          nullable: true
    API.Pub.Resources.Common.Pricings.CommissionsCollection:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Common.Pricings.CommissionsResource"
    API.Pub.Resources.Common.Pricings.CommissionsResource:
      type: object
      properties:
        cidr:
          type: integer
        min_commission:
          type: number
          format: float
        min_ip_price:
          type: number
          format: float
    API.Pub.Resources.Common.Statistics.SubnetUsageCollection:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Common.Statistics.SubnetUsageResource"
    API.Pub.Resources.Common.Statistics.SubnetUsageResource:
      type: object
      properties:
        mask:
          maximum: 24
          minimum: 1
          type: integer
        free:
          type: integer
        in_use:
          type: integer
        price_min:
          type: number
          format: float
        price_max:
          type: number
          format: float
        price_avg:
          type: number
          format: float
        period:
          type: string
          format: date-time
    API.Pub.Resources.IPMarket.Deductions.DeductionResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        tenant_uuid:
          type: string
          format: uuid
        ipmarket_service_uuid:
          type: string
          format: uuid
        subnet:
          type: string
        amount:
          type: number
          format: float
        status:
          enum:
            - pending
            - completed
            - cancelled
          type: string
        comment:
          type: string
        evidence:
          type: string
        all_sum:
          type: boolean
        lease_period:
          type: number
        deduction_invoice_uuid:
          type: string
        created_at:
          type: number
        updated_at:
          type: number
        type:
          enum:
            - service
            - ip_holder_fee
          type: string
    API.Pub.Resources.IPMarket.CommitmentReservationResource:
      type: object
      properties:
        uuid:
          type: string
        address:
          type: string
        cidr:
          type: number
          format: int
        price:
          type: number
          format: float
        commitment_period:
          type: number
          format: int
        created_at:
          type: number
          format: int
        tenant:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.CommitmentReservationTenantResource"
        ipmarket_service:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ReservationIpmarketServiceResource"
        commitment:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.CommitmentResource"
    API.Pub.Resources.IPMarket.CommitmentReservationTenantResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        title:
          type: string
    API.Pub.Resources.IPMarket.EventLogResource:
      type: object
      properties:
        label:
          type: string
        type:
          type: string
        data:
          type: array
          items:
            type: object
            properties:
              string:
                type: string
        created_at:
          type: integer
    API.Pub.Resources.IPMarket.IPMarketIPV4Collection: {}
    API.Pub.Resources.IPMarket.IPMarketIPV4Resource:
      type: object
      properties:
        address:
          type: integer
        address_string:
          type: string
        last_address:
          type: integer
        lasta_ddress_string:
          type: string
        cidr:
          type: integer
        wants_to_negotiate:
          type: boolean
        pricing_uuid:
          type: string
          format: uuid
        uuid:
          type: string
          format: uuid
        tenant_title:
          type: string
        registrar_uuid:
          type: string
        price:
          type: object
          properties:
            "1":
              type: number
              format: float
            "3":
              type: number
              format: float
            "6":
              type: number
              format: float
            "12":
              type: number
              format: float
            "24":
              type: number
              format: float
        geo_data:
          type: object
          properties:
            maxmind:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ip2location:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            dbip:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ipinfo:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
    API.Pub.Resources.IPMarket.IPMarketServiceCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.IPMarketServiceIPSResource:
      type: object
      properties:
        run_rate:
          type: number
          format: float
        run_rate_ip:
          type: number
          format: float
        total:
          type: integer
        used:
          type: integer
        free:
          type: integer
        utilisation_percent:
          type: integer
    API.Pub.Resources.IPMarket.ServiceLeaseEarningCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServiceLeaseEarningResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.ServiceLeaseEarningResource:
      type: object
      properties:
        service_uuid:
          type: string
          format: uuid
        payout_uuid:
          type: string
          format: uuid
        amount:
          type: number
          format: float
        start:
          type: integer
        end:
          type: integer
        created_at:
          type: integer
    API.Pub.Resources.IPMarket.IPMarketServiceResource:
      type: object
      properties:
        uuid:
          type: string
        address:
          type: string
        cidr:
          type: integer
        start:
          type: string
        abuse_email:
          type: string
        registry:
          type: string
        status:
          enum:
            - auth_pending
            - auth_failed_verify
            - auth_failed_verify_email_not_found
            - auth_failed_verify_email_not_sent
            - validity_pending
            - validity_active
            - validity_invalid
            - validity_terminated
            - object_terminated
          type: string
        auth:
          type: object
          properties:
            type:
              type: string
            status:
              type: string
            description:
              type: string
        whois:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        bgp:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        dns:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        iprep:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        loaa:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        roa:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        hidden:
          type: boolean
        reservation_id:
          type: string
        minimum_split:
          type: integer
        maximum_split:
          type: integer
        loa-a:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.LOAAuthorizationResource"
        ips:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IPMarketServiceIPSResource"
        pricings:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServicePricingCollection"
        terminated:
          type: integer
        expires_at:
          type: integer
        has_commitments:
          type: boolean
        can_initiate_expiration:
          type: boolean
        services:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.BillingServiceResource"
        commitmentReservations:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.CommitmentReservationResource"
        serviceReservations:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServiceReservationResource"
    API.Pub.Resources.IPMarket.IpReputationCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.IpReputationResource"
        meta:
          $ref: "#/components/schemas/ipRepValidatorCollectionMeta"
    API.Pub.Resources.IPMarket.IpReputationResource:
      type: object
      properties:
        id:
          type: integer
        ip:
          type: string
        ip_int:
          type: integer
        country_code:
          type: string
        detection_rate:
          type: string
        detections:
          type: integer
        detections_engine_list:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              name:
                type: string
              level:
                type: string
              url:
                type: string
              enabled:
                type: boolean
        engines_count:
          type: integer
        is_listed:
          type: boolean
        is_proxy:
          type: boolean
        is_tor:
          type: boolean
        is_vpn:
          type: boolean
        session_id:
          type: integer
        created:
          type: integer
        meta:
          $ref: "#/components/schemas/ipRepValidatorCollectionMeta"
    API.Pub.Resources.IPMarket.LOAAuthorizationResource:
      type: object
      properties:
        email:
          type: string
        status:
          type: string
        created_at:
          type: integer
    API.Pub.Resources.IPMarket.MarketSearchResource:
      type: object
      properties:
        notation:
          type: string
        address:
          type: integer
        address_string:
          type: string
        prefix_length:
          type: integer
        registrar:
          type: string
        pricing: {}
        geo_data:
          type: object
          properties:
            maxmind:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ip2location:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            dbip:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ipinfo:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ipgeolocation:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
            ipregistry:
              type: object
              properties:
                city_name:
                  type: string
                country_code:
                  type: string
                country_name:
                  type: string
                date:
                  type: integer
        capabilitities:
          type: object
          properties:
            rpki:
              enum:
                - automated
                - manual
                - unsupported
              type: string
            whois:
              type: object
              properties:
                inetnum:
                  enum:
                    - automated
                    - manual
                    - unsupported
                  type: string
                routes:
                  enum:
                    - automated
                    - manual
                    - unsupported
                  type: string
                rdns:
                  enum:
                    - automated
                    - manual
                    - unsupported
                  type: string
    API.Pub.Resources.IPMarket.MarketSearchCollection: {}
    API.Pub.Resources.IPMarket.PaymentConfirmationCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PaymentConfirmationResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.PaymentConfirmationCollectionBare:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PaymentConfirmationResource"
    API.Pub.Resources.IPMarket.PaymentConfirmationResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        confirmation_number:
          type: string
        method:
          enum:
            - banktransfer
            - paypal
            - credit
          type: string
        method_details: {}
        date:
          type: integer
        transaction_id:
          type: string
        amount:
          type: number
          format: float
        fee:
          type: number
          format: float
    API.Pub.Resources.IPMarket.PayoutCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.PayoutInvoiceCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.PayoutInvoiceItemCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceItemResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.PayoutInvoiceItemCollectionBare:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceItemResource"
    API.Pub.Resources.IPMarket.PayoutInvoiceItemResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        type:
          enum:
            - payout
          type: string
        description:
          type: string
        period_start:
          type: integer
        period_end:
          type: integer
        amount:
          type: number
          format: float
        cidr:
          type: integer
        address:
          type: string
          format: ipv4
        service_uuid:
          type: string
          format: uuid
        start:
          type: integer
        end:
          type: integer
    API.Pub.Resources.IPMarket.PayoutInvoiceLeaseItemsResource:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              subnet:
                type: string
                description: Subnet that was leased (e.g., 10.0.0.0/24)
              lease_period_from:
                type: string
                description: Lease period start in Y-m-d H:i:s format
              lease_period_to:
                type: string
                description: Lease period end in Y-m-d H:i:s format
              sales:
                type: number
                description: Amount IP Holder initially set
                format: float
              holder_fee:
                type: number
                description: 5% holder fee
                format: float
              deductions:
                type: number
                description: Other deductions
                format: float
              net_earnings:
                type: number
                description: Net earnings after fees and deductions
                format: float
        meta:
          type: object
          properties:
            current_page:
              type: integer
            per_page:
              type: integer
            total:
              type: integer
            last_page:
              type: integer
            from:
              type: integer
              nullable: true
            to:
              type: integer
              nullable: true
          description: Pagination metadata
    API.Pub.Resources.IPMarket.PayoutInvoiceResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        invoice_number:
          type: string
        tenant_uuid:
          type: string
          format: uuid
        total:
          type: number
          format: float
        fees:
          type: number
          format: float
        status:
          enum:
            - paid
            - unpaid
          type: string
        date:
          type: integer
        date_paid:
          type: integer
        payment_confirmation_uuid:
          type: string
          format: uuid
        items:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.PayoutInvoiceItemCollectionBare"
    API.Pub.Resources.IPMarket.PayoutInvoiceStatsResource:
      type: object
      properties:
        period:
          type: object
          properties:
            from:
              type: string
              description: starting date in YYYY-MM-DD format
              nullable: true
            to:
              type: string
              description: ending date in YYYY-MM-DD format
              nullable: true
          description: Statistics period
        data:
          type: array
          items:
            type: object
            properties:
              invoice_uuid:
                type: string
                description: Invoice UUID
              invoice_number:
                type: string
                description: Invoice number
              period:
                type: string
                description: Period in Y-m-d format
              payout_date:
                type: integer
                description: Payout date timestamp
                nullable: true
              payout_status:
                enum:
                  - processing
                  - paid
                type: string
                description: Payout status
              ips_count:
                type: integer
                description: Number of IPs leased
              total_sales:
                type: number
                description: Total sales (gross)
                format: float
              average_net_per_ip:
                type: number
                description: Average net payout per IP
                format: float
              transaction_fee:
                type: number
                description: Transaction fee
                format: float
                nullable: true
              holder_fee:
                type: number
                description: 5% holder fee
                format: float
              deductions:
                type: number
                description: Other deductions
                format: float
              net_payout:
                type: number
                description: Net payout amount
                format: float
              payment_confirmation_uuid:
                type: string
                description: Payment confirmation UUID
                format: uuid
                nullable: true
              payment_confirmation_number:
                type: string
                description: Payment confirmation invoice number
                nullable: true
              holder_fee_invoice_uuid:
                type: string
                description: Invoice UUID for holder fee deduction PDF
                format: uuid
                nullable: true
        meta:
          type: object
          properties:
            current_page:
              type: integer
            per_page:
              type: integer
            total:
              type: integer
            last_page:
              type: integer
            from:
              type: integer
              nullable: true
            to:
              type: integer
              nullable: true
          description: Pagination metadata (only present when pagination is requested)
          nullable: true
        total_sales:
          type: number
          description: Total sales (for all filtered data, not just current page when paginated)
          format: float
        total_net_payout:
          type: number
          description: Total net payout (for all filtered data, not just current page when paginated)
          format: float
    API.Pub.Resources.IPMarket.PayoutMethodResource:
      type: object
      properties:
        type:
          type: string
        details:
          type: array
          items: {}
        cycle:
          type: integer
        minimal_amount:
          type: number
          format: float
    API.Pub.Resources.IPMarket.PayoutResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        tenant_uuid:
          type: string
          format: uuid
        service_uuid:
          type: string
          format: uuid
        address:
          type: string
          format: ipv4
        cidr:
          type: integer
        amount:
          type: number
          format: float
        total:
          type: number
          format: float
        lease_count:
          type: integer
        status:
          enum:
            - pending
            - completed
            - rejected
            - graph
          type: string
        status_details:
          type: string
        method:
          type: string
        transaction_id:
          type: string
        start:
          type: integer
        end:
          type: integer
        status_date:
          type: integer
        created_at:
          type: integer
        earnings:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ServiceLeaseEarningResource"
          description: list of Service Lease Earnings
    API.Pub.Resources.IPMarket.PayoutsStatsResource:
      type: object
      properties:
        period:
          type: object
          properties:
            from:
              type: integer
              description: starting date
            to:
              type: integer
              description: ending date
          description: Statistics period
        data:
          type: array
          items:
            type: object
            properties:
              date:
                type: integer
              amount:
                type: number
                format: float
              subnet:
                type: string
              service_uuid:
                type: string
        total:
          type: number
          description: Total amount for period
          format: float
        last_payout_date:
          type: number
          description: Last payout date
          format: int
        next_payout_date:
          type: number
          description: Next payout date
          format: int
        min_amount_reached:
          type: boolean
          description: Min amount reached
        unpaid:
          type: number
          description: Unpaid amount
          format: float
    API.Pub.Resources.IPMarket.RegistrarCollection:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.IPMarket.RegistrarResource"
    API.Pub.Resources.IPMarket.RegistrarResource:
      type: object
      properties:
        uuid:
          type: string
        name:
          type: string
    API.Pub.Resources.IPMarket.ReservationIpmarketServiceResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        address:
          type: string
        cidr:
          type: integer
    API.Pub.Resources.IPMarket.ReverseDNSRecordCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.ReverseDNSRecordResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.ReverseDNSRecordResource:
      type: object
      properties:
        prefix:
          type: string
          description: IPv4 Address and Prefix Length
        records:
          type: array
          items:
            type: object
            properties:
              address:
                type: string
                format: ipv4
              dname:
                type: string
              ttl:
                type: integer
    API.Pub.Resources.IPMarket.ServicePricingCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.PricingResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.IPMarket.ServiceReservationResource:
      type: object
      properties:
        address:
          type: string
        cidr:
          type: number
          format: int
        pricing:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.PricingResource"
    API.Pub.Resources.IPMarket.ServiceStatusResource:
      type: object
      properties:
        abuse_email:
          type: string
        registry:
          type: string
        status:
          enum:
            - auth_pending
            - auth_failed_verify
            - auth_failed_verify_email_not_found
            - auth_failed_verify_email_not_sent
            - validity_pending
            - validity_active
            - validity_invalid
            - validity_terminated
            - object_terminated
          type: string
        auth:
          type: object
          properties:
            type:
              type: string
            status:
              type: string
            description:
              type: string
        whois:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        bgp:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        dns:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        iprep:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
        loaa:
          type: object
          properties:
            status:
              type: string
            description:
              type: string
    API.Pub.Resources.IPMarket.Services.BillingServiceResource:
      type: object
      properties:
        uuid:
          type: string
        cidr:
          type: integer
        address:
          type: string
        status:
          type: string
        pricing:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.PricingResource"
        commitment:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.CommitmentResource"
    API.Pub.Resources.IPMarket.Services.CommitmentResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        pricing_uuid:
          type: string
          format: uuid
        status:
          type: string
        price:
          type: number
          format: float
        period:
          type: number
          format: integer
        start_date:
          type: number
          format: integer
        end_date:
          type: number
          format: integer
    API.Pub.Resources.IPMarket.Services.IPv4ServiceCommitmentResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
    API.Pub.Resources.IPMarket.Services.IPv4ServicesListCommitmentResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
    API.Pub.Resources.IPMarket.Services.LeasedServiceResource:
      type: object
      properties:
        uuid:
          type: string
        prefix_length:
          type: integer
        address:
          type: string
        pricing:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.PricingResource"
        commitments:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.CommitmentResource"
    API.Pub.Resources.IPMarket.Services.PricingResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        subnet_size:
          type: number
        ip_count:
          type: number
        price:
          type: number
          format: float
        commission:
          type: number
          format: float
        wants_to_negotiate:
          type: boolean
        selected_commitment_periods:
          type: array
          items:
            type: integer
          description: Commitment period in months
    API.Pub.Resources.IPMarket.ChildIPV4Resource:
      type: object
      properties:
        address:
          type: string
        mask:
          type: integer
        is_hidden:
          type: boolean
        is_reserved:
          type: boolean
        is_leased:
          type: boolean
        price:
          type: number
          format: float
        is_part_of_subnet_leased_or_reserved:
          type: boolean
        hiding_reason:
          type: string
    API.Pub.Resources.IPMarket.HiddenIPV4ChildResource:
      type: object
      properties:
        address:
          type: string
        mask:
          type: integer
        price:
          type: number
          format: float
        associated_subnets:
          type: array
          items:
            type: string
        hiding_reason:
          type: string
    API.Pub.Resources.Jobs.BatchesResource:
      type: object
      properties:
        name:
          type: string
        total_jobs:
          type: integer
        results:
          $ref: "#/components/schemas/API.Pub.Resources.Jobs.JobResultsResource"
    API.Pub.Resources.Jobs.JobResultsResource:
      type: object
      properties:
        status:
          type: string
        metadata:
          type: array
          items:
            $ref: "#/components/schemas/Mixed"
    API.Pub.Resources.IPMarket.Quarantine.QuarantineResource:
      type: object
      properties:
        subnet:
          type: string
        in_quarantine_since:
          type: integer
        roa_validation_last_updated:
          type: integer
        bgp_validation_last_updated:
          type: integer
        ip_reputation_last_updated:
          type: integer
    API.Pub.Resources.Services.IPMarketServiceForIPv4ServicesListResource:
      type: object
      properties:
        expires_at:
          type: number
          format: integer
        registry:
          type: string
        uuid:
          type: string
          format: uuid
    API.Pub.Resources.Services.IPv4ServiceBillingServiceResource:
      type: object
      properties:
        address:
          type: string
          format: ipv4
        cidr:
          type: integer
        recurring_amount:
          type: number
          format: float
        status:
          enum:
            - pending
            - active
            - suspended
            - terminated
            - completed
          type: string
        start_date:
          type: integer
          description: timestamp of date when service began operating
        uuid:
          type: string
        ecommerce_subscription_uuid:
          type: string
          nullable: true
    API.Pub.Resources.Services.IPv4ServiceComitmentResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
        price:
          type: number
          format: float
        period:
          type: number
          format: integer
        start_date:
          type: number
          format: integer
        end_date:
          type: number
          format: integer
    API.Pub.Resources.Services.IPv4ServiceIPMarketServiceResource:
      type: object
      properties:
        expires_at:
          type: number
          format: integer
        registry:
          type: string
        uuid:
          type: string
    API.Pub.Resources.Services.IPv4ServiceResource:
      type: object
      properties:
        billing_service:
          $ref: "#/components/schemas/API.Pub.Resources.Services.IPv4ServiceBillingServiceResource"
        commitment:
          $ref: "#/components/schemas/API.Pub.Resources.IPMarket.Services.IPv4ServiceCommitmentResource"
        market_service:
          $ref: "#/components/schemas/API.Pub.Resources.Services.IPv4ServiceIPMarketServiceResource"
        termination_request:
          type: object
          nullable: true
        uuid:
          type: string
        ecommerce_subscription_uuid:
          type: string
          nullable: true
        ecommerce_pending_order:
          type: object
          oneOf:
            - $ref: "#/components/schemas/API.Pub.Resources.Ecommerce.Orders.OrderResource"
          nullable: true
    API.Pub.Resources.Services.IPv4ServicesListBillingServiceResource:
      type: object
      properties:
        address:
          type: string
          format: ipv4
        cidr:
          type: integer
        next_due_date:
          type: number
          format: integer
        recurring_amount:
          type: number
          format: float
        status:
          enum:
            - pending
            - active
            - suspended
            - terminated
            - completed
          type: string
        pricing:
          $ref: "#/components/schemas/API.Pub.Resources.Services.IPv4ServicesListPricingResource"
        uuid:
          type: string
        ecommerce_subscription_uuid:
          type: string
          nullable: true
    API.Pub.Resources.Services.IPv4ServicesListPricingResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        wants_to_negotiate:
          type: boolean
    API.Pub.Resources.Services.IPv4ServicesListResource:
      type: object
      properties:
        billing_service:
          $ref: "#/components/schemas/API.Pub.Resources.Services.IPv4ServicesListBillingServiceResource"
        loa:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Services.LOAReassignDocumentCollection"
          description: list of LOA documents
        market_service:
          $ref: "#/components/schemas/API.Pub.Resources.Services.IPMarketServiceForIPv4ServicesListResource"
        ecommerce_subscription_uuid:
          type: string
          nullable: true
        ecommerce_pending_order:
          type: object
          oneOf:
            - $ref: "#/components/schemas/API.Pub.Resources.Ecommerce.Orders.OrderResource"
          nullable: true
    API.Pub.Resources.Services.LOAReassignDocumentCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Services.LOAReassignDocumentResource"
    API.Pub.Resources.Services.LOAReassignDocumentResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        asn:
          type: number
          format: integer
        as_name:
          type: string
        status:
          type: string
        created_at:
          type: number
          format: integer
    API.Pub.Resources.Services.PricingForIPv4ServicesListResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        wants_to_negotiate:
          type: boolean
    API.Pub.Resources.Services.TerminationReasonsResource:
      type: object
      properties:
        uuid:
          type: string
        title:
          type: string
    API.Pub.Resources.Common.Slack.SlackUrlResource:
      type: object
      properties:
        slack_url:
          type: string
    API.Pub.Resources.Common.IndustryCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Common.IndustryResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.Common.IndustryResource:
      type: object
      properties:
        uuid:
          type: string
        name:
          type: number
    API.Pub.Resources.Tenants.MetadataResource:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    API.Pub.Resources.Tenants.OptionResource:
      type: object
      properties:
        key:
          type: string
        value:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
    API.Pub.Resources.Tenants.StatusReasonResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        slug:
          type: string
        title:
          type: string
    API.Pub.Resources.Tenants.SummaryShortResource:
      type: object
      properties:
        monetizing_ips_count:
          type: number
        renting_ips_count:
          type: number
        code:
          type: string
    API.Pub.Resources.Tenants.TenantCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantResource"
    API.Pub.Resources.Tenants.TenantFlagResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        slug:
          type: string
    API.Pub.Resources.Tenants.TenantLogoResource:
      type: object
      properties:
        image:
          type: string
    API.Pub.Resources.Tenants.TenantResource:
      type: object
      properties:
        uuid:
          type: string
        email:
          type: string
        business_since:
          type: string
          nullable: true
        company_size:
          type: string
          nullable: true
        title:
          type: string
        status:
          type: string
        code:
          type: string
        options:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.OptionResource"
        meta:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.MetadataResource"
        credit:
          type: object
          properties:
            amount:
              type: number
              format: float
            auto_payment:
              type: boolean
        summary:
          type: string
        logo:
          $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantLogoResource"
        payment_gateways:
          type: array
          items:
            type: string
        flags:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantFlagResource"
        status_reason:
          $ref: "#/components/schemas/API.Pub.Resources.Tenants.StatusReasonResource"
        vat_number:
          type: string
        email_verified:
          type: boolean
        abuse_email_verified:
          type: boolean
    API.Pub.Resources.Tenants.TenantShowResource:
      type: object
      properties:
        uuid:
          type: string
        title:
          type: string
        email:
          type: string
        business_since:
          type: string
          nullable: true
        company_size:
          type: string
          nullable: true
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        postcode:
          type: string
        country:
          type: string
        state:
          type: string
        status:
          type: string
        abuse_email:
          type: string
        created_at:
          type: integer
        options:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.OptionResource"
        meta:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.MetadataResource"
        industry:
          $ref: "#/components/schemas/API.Pub.Resources.Common.IndustryResource"
        credit:
          type: object
          properties:
            uuid:
              type: string
            amount:
              type: number
              format: float
            auto_payment:
              type: boolean
        summary:
          type: string
        logo:
          $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantLogoResource"
        payment_gateways:
          type: array
          items:
            type: string
        flags:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantFlagResource"
        status_reason:
          $ref: "#/components/schemas/API.Pub.Resources.Tenants.StatusReasonResource"
        vat_number:
          type: string
        email_verified:
          type: boolean
        abuse_email_verified:
          type: boolean
    API.Pub.Resources.Tenants.TenantWithSummaryCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Tenants.TenantWithSummaryResource"
    API.Pub.Resources.Tenants.TenantWithSummaryResource:
      type: object
      properties:
        uuid:
          type: string
        address1:
          type: string
        address2:
          type: string
        email:
          type: string
        city:
          type: string
        postcode:
          type: string
        abuse_email:
          type: string
        country:
          type: string
        state:
          type: string
        title:
          type: string
        created_at:
          type: number
          format: integer
        status:
          type: string
        users_count:
          type: number
        industry:
          $ref: "#/components/schemas/API.Pub.Resources.Common.IndustryResource"
        vat_number:
          type: string
    API.Pub.Resources.Ecommerce.Orders.OrderResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        status:
          type: string
        expires_at:
          type: string
          format: date-time
    API.Pub.Requests.Invoices.ExportInvoicesPDFRequest:
      required:
        - invoice_uuids
      type: object
      properties:
        invoice_uuids:
          type: array
          items:
            type: string
          description: The invoices uuid of which PDF files you want download.
    API.Pub.Resources.Invoices.IPv4ServiceInvoiceResource:
      type: object
      properties:
        uuid:
          type: string
        invoice_number:
          type: string
        status:
          type: string
    API.Pub.Resources.Invoices.InvoiceCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceResource"
    API.Pub.Resources.Invoices.InvoiceListResource:
      type: object
      properties:
        uuid:
          type: string
        invoice_number:
          type: string
        date:
          type: integer
        date_due:
          type: integer
        subtotal_with_taxes:
          type: number
          format: float
        status:
          type: string
        items_count:
          type: integer
    API.Pub.Resources.Invoices.InvoiceResource:
      type: object
      properties:
        uuid:
          type: string
        tenant_uuid:
          type: string
        invoice_number:
          type: string
        date:
          type: integer
        date_due:
          type: integer
        date_paid:
          type: integer
        subtotal:
          type: number
          format: float
        subtotal_with_taxes:
          type: number
          format: float
        total:
          type: number
          format: float
        total_left_to_pay:
          type: number
          format: float
        total_paid:
          type: number
          format: float
        total_tax:
          type: number
          format: float
        status:
          type: string
        items_count:
          type: integer
        items:
          $ref: "#/components/schemas/API.Pub.Resources.Invoices.ItemCollectionBare"
        taxes:
          $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceTaxCollectionBare"
        transactions:
          $ref: "#/components/schemas/API.Pub.Resources.Invoices.TransactionCollectionBare"
    API.Pub.Resources.Invoices.InvoiceTaxCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceTaxResource"
    API.Pub.Resources.Invoices.InvoiceTaxCollectionBare:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Invoices.InvoiceTaxResource"
    API.Pub.Resources.Invoices.InvoiceTaxResource:
      type: object
      properties:
        description:
          type: string
        percentage:
          type: number
          format: float
        amount:
          type: number
          format: float
        order:
          type: number
          description: Indicates in what order the taxes are applied, lowest to highest
          format: float
        stacks:
          type: number
          description: |-
            Indicates whether this tax is applied on top of previous taxes,
                                     according to 'order'
          format: float
    API.Pub.Resources.Invoices.ItemCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Invoices.ItemResource"
    API.Pub.Resources.Invoices.ItemCollectionBare:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Invoices.ItemResource"
    API.Pub.Resources.Invoices.ItemResource:
      type: object
      properties:
        invoice_uuid:
          type: integer
        service_uuid:
          type: integer
        description:
          type: string
        amount:
          type: number
          format: float
        taxed:
          type: integer
        period_start:
          type: integer
        period_end:
          type: integer
        type:
          type: string
        metadata:
          type: object
          properties:
            <key1>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
                - type: array
                  items: {}
            <key2>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
                - type: array
                  items: {}
            <key..>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
                - type: array
                  items: {}
            <keyN>:
              oneOf:
                - type: string
                - type: integer
                - type: number
                  format: float
                - type: array
                  items: {}
    API.Pub.Resources.Invoices.TransactionCollection:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/API.Pub.Resources.Invoices.TransactionResource"
        meta:
          $ref: "#/components/schemas/collectionMeta"
    API.Pub.Resources.Invoices.TransactionCollectionBare:
      type: array
      items:
        $ref: "#/components/schemas/API.Pub.Resources.Invoices.ItemResource"
    API.Pub.Resources.Invoices.TransactionResource:
      type: object
      properties:
        uuid:
          type: string
        invoice_uuid:
          type: string
        invoice_number:
          type: string
        gateway_uuid:
          type: string
        date:
          type: integer
        description:
          type: string
        amount:
          type: number
          format: float
        type:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
tags:
  - name: Common
    description: Common
  - name: Cart
    description: Cart
  - name: Countries
    description: Countries
  - name: Common / Market
    description: Common / Market
  - name: Deductions
    description: Deductions
  - name: Market
    description: Market
  - name: Payouts
    description: Payouts
  - name: PayoutMethods
    description: PayoutMethods
  - name: EventLog
    description: EventLog
  - name: Invoices
    description: Invoices
  - name: Tenants
    description: Tenants
  - name: Quarantine
    description: Quarantine
  - name: Batches
    description: Batches
  - name: IPV6
    description: IPV6
  - name: Integrations
    description: Integrations
security:
  - bearerAuth: []
