{
  "openapi": "3.1.0",
  "info": {
    "title": "Trackdesk API for affiliates",
    "version": "1.0",
    "description": "The endpoints an affiliate can call with their own personal access token or OAuth2 client. Responses hold the same\ndata the affiliate sees in the program: their offers, coupons, balances, payouts and reports.\n\nTenant ID\n=========\n\nPlease, fill in the tenant ID of the program you promote, a.k.a. the subdomain on which it is running.\nIn case of https://my-awesome-affiliate-system.trackdesk.com, your tenant ID is my-awesome-affiliate-system\n\nAPI key\n=======\n\nPlease, fill in your personal access token.\n\nHow to get an API key?\n=================\n\n1. Sign in to the program, e.g. https://my-awesome-affiliate-system.trackdesk.com.\n2. Open https://my-awesome-affiliate-system.trackdesk.com/settings/personal-access-tokens.\n3. Generate a new token and copy its content to the input above.\n\nHow to get OAuth2 credentials?\n==============================\n\nSign in to the program and open https://my-awesome-affiliate-system.trackdesk.com/settings/oauth. The OAuth2 section\nbelow describes the grants and endpoints.\n\nAccount ID\n==========\n\nGetting your profile and balances, setting your billing details and creating a payment method take your account ID.\nThe personal access token page above shows it. While signed in, the program's own reference at\nhttps://my-awesome-affiliate-system.trackdesk.com/developers fills it in for you.\n\nPlan features\n=============\n\nPersonal access tokens and OAuth2 credentials work only while the program's plan includes the public API. Offer caps\nalso need the Offer Caps feature, and account settlements need Public API – Settlements when called with a personal\naccess token or OAuth2. Without the feature, the endpoint responds with an inactive feature error.\n\nOAuth2\n======\n\nCreate a confidential client in Settings -> Integrations -> OAuth2, under OAuth2 credentials. Use client_credentials for machine access, or authorization_code for access approved by a user. Authorization requests go to https://{tenantId}.trackdesk.com/oauth/authorize and must use a registered redirect_uri plus PKCE S256; a loopback redirect may arrive on any port. Exchange codes, rotate refresh tokens, and request client_credentials tokens at https://{tenantId}.trackdesk.com/api/node/oauth/token. Authenticate the client via HTTP Basic or the client_id/client_secret form fields. Revoke an access or refresh token at https://{tenantId}.trackdesk.com/api/node/oauth/revoke. Access tokens expire after 1 hour.\n",
    "termsOfService": "https://trackdesk.com/terms-conditions",
    "contact": {
      "name": "Trackdesk Support",
      "url": "https://trackdesk.com",
      "email": "support@trackdesk.com"
    },
    "license": {
      "name": "Trackdesk licenced",
      "url": "https://trackdesk.com/terms-conditions"
    }
  },
  "servers": [
    {
      "url": "https://{tenantId}.trackdesk.com",
      "description": "Production server",
      "variables": {
        "tenantId": {
          "default": "-- replace me --",
          "description": "Tenant ID of current tenant"
        }
      }
    }
  ],
  "security": [
    {
      "X-Api-Key": []
    },
    {
      "OAuth2": [
        "api"
      ]
    }
  ],
  "paths": {
    "/api/node/affiliate-bonuses/v1/list": {
      "post": {
        "tags": [
          "Affiliate Bonuses V1"
        ],
        "summary": "List affiliate bonuses",
        "description": "Lists affiliate bonuses with optional affiliate, settlement, and creation date filters.",
        "operationId": "AffiliateBonusService_ListAffiliateBonuses",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliate_bonuses.v1.ListAffiliateBonusesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliate_bonuses.v1.ListAffiliateBonusesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/affiliates/v1/{accountId}": {
      "get": {
        "tags": [
          "Affiliates V1"
        ],
        "summary": "Affiliate details",
        "description": "Get detailed information about a specific affiliate.",
        "operationId": "AffiliateService_GetAffiliate",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account ID of the affiliate.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "account_id",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.GetAffiliateResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/billing-details/v1": {
      "post": {
        "tags": [
          "Billing Details V1"
        ],
        "summary": "Set billing detail",
        "description": "Fill in the billing details for affiliate's account.",
        "operationId": "BillingDetailService_SetBillingDetail",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/billing_details.v1.SetBillingDetailRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing_details.v1.SetBillingDetailResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/billing/v1/account-balances/{accountId}": {
      "get": {
        "tags": [
          "Billing Balance V1"
        ],
        "summary": "Get balances for account",
        "description": "Retrieves balance breakdown for a specific affiliate including open, on-hold, and settled amounts.",
        "operationId": "BalanceService_GetBalancesForAccount",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "ID of the affiliate to whom balances are credited.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "account_id",
              "format": "uuid"
            }
          },
          {
            "name": "until",
            "in": "query",
            "description": "Day until which the open balance is computed. When omitted, the current time is used.",
            "required": false,
            "schema": {
              "type": "string",
              "examples": [
                "2023-01-15T01:30:15.01Z",
                "2024-12-25T12:00:00Z"
              ],
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.GetBalancesForAccountResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/billing/v1/account-settlements": {
      "get": {
        "tags": [
          "Billing Settlement V1"
        ],
        "summary": "List affiliate settlements",
        "description": "Lists all settlements for a specific affiliate or all affiliates.",
        "operationId": "SettlementService_ListAccountSettlements",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "schema": {
              "exclusiveMinimum": 0,
              "type": "integer",
              "title": "limit",
              "maximum": 500
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "schema": {
              "type": "integer",
              "title": "offset"
            }
          },
          {
            "name": "timeRange.from",
            "in": "query",
            "description": "A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC.",
            "schema": {
              "type": "string",
              "examples": [
                "2023-01-15T01:30:15.01Z",
                "2024-12-25T12:00:00Z"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "timeRange.to",
            "in": "query",
            "description": "A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC.",
            "schema": {
              "type": "string",
              "examples": [
                "2023-01-15T01:30:15.01Z",
                "2024-12-25T12:00:00Z"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "description": "ID of affiliate for which to show affiliate settlements.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.ListAccountSettlementsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/conversion-types/v1/for-cid/{cid}": {
      "get": {
        "tags": [
          "Conversion Types V1"
        ],
        "summary": "List conversion types available for CID",
        "description": "Provides a list of conversion types that are available for the requesting click identifier (CID)",
        "operationId": "ConversionTypesService_ListConversionTypesAvailableForCid",
        "parameters": [
          {
            "name": "cid",
            "in": "path",
            "description": "The cid path parameter.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "cid",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/conversion_types.v1.ListConversionTypesAvailableForCidResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/coupons/v1/list": {
      "post": {
        "tags": [
          "Coupons V1"
        ],
        "summary": "List coupons",
        "description": "Returns a list of all existing coupons in the system.",
        "operationId": "CouponsService_ListCoupons",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/coupons.v1.ListCouponsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons.v1.ListCouponsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/offer-caps/v1/offer/{offerId}": {
      "get": {
        "tags": [
          "Offer Caps V1"
        ],
        "summary": "List offer caps",
        "description": "Returns all conversion caps configured for a specific offer,\n including their limits, current utilization, and source-specific overrides.",
        "operationId": "OfferCapsService_ListOfferCaps",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) whose caps are listed.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "offer_id",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer_caps.v1.ListOfferCapsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/offers/v1/{offerId}/creatives": {
      "get": {
        "tags": [
          "Offers Creatives V1"
        ],
        "summary": "List offer creatives",
        "description": "Lists the promotional creatives configured for this offer, each identified by its unique id.",
        "operationId": "OfferCreativesService_ListOfferCreatives",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID).",
            "required": true,
            "schema": {
              "type": "string",
              "title": "offer_id",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.ListOfferCreativesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/offers/v1/{offerId}/landing-pages/list": {
      "post": {
        "tags": [
          "Offers Landing Pages V1"
        ],
        "summary": "List landing pages by offer",
        "description": "Lists all landing pages assigned to an offer. Each item carries either direct or redirect tracking link metadata.",
        "operationId": "LandingPagesService_ListLandingPages",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) whose landing pages are listed.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "offer_id",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pagination": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/types.v1.PaginationParams"
                      }
                    ],
                    "title": "pagination",
                    "description": "Pagination of the listed landing pages."
                  }
                },
                "title": "offers.v1.ListLandingPagesRequest",
                "required": [
                  "pagination"
                ],
                "additionalProperties": false,
                "description": "Request to list landing pages assigned to an offer."
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.ListLandingPagesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/payment-methods/v1": {
      "post": {
        "tags": [
          "Payment Methods V1"
        ],
        "summary": "Create a new payment method",
        "description": "Creates a new payment method for the affiliate account.\n Once created, it can be set as a default payment method using `SetPaymentMethodAccountDefault` endpoint.",
        "operationId": "PaymentMethodService_CreatePaymentMethod",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/payment_methods.v1.CreatePaymentMethodRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payment_methods.v1.CreatePaymentMethodResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/payment-methods/v1/{id}": {
      "patch": {
        "tags": [
          "Payment Methods V1"
        ],
        "summary": "Update payment method",
        "description": "Updates the data for selected payment method.",
        "operationId": "PaymentMethodService_UpdatePaymentMethod",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Payment method identification.",
            "required": true,
            "schema": {
              "type": "string",
              "title": "id",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
                      }
                    ],
                    "not": {
                      "enum": [
                        "PAYMENT_METHOD_TYPE_UNSPECIFIED"
                      ]
                    },
                    "title": "type",
                    "description": "Type of the payment method."
                  },
                  "currency": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/types.v1.Currency"
                      }
                    ],
                    "title": "currency",
                    "description": "Currency for the payment method. Uses ISO 4217 format."
                  },
                  "data": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
                      }
                    ],
                    "title": "data",
                    "description": "Payment method data."
                  }
                },
                "title": "payment_methods.v1.UpdatePaymentMethodRequest",
                "required": [
                  "currency",
                  "data"
                ],
                "additionalProperties": false,
                "description": "Update existing payment method."
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payment_methods.v1.UpdatePaymentMethodResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/tags/v1": {
      "get": {
        "tags": [
          "Tags V1"
        ],
        "summary": "List tags",
        "description": "Lists all tags in the system.",
        "operationId": "TagsService_ListTags",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags.v1.ListTagsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/click-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "Click report",
        "description": "Provides information about registered clicks.",
        "operationId": "ReportsService_ClickReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.ClickReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.ClickReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/conversion-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "Conversion report",
        "description": "Shows data related to conversions tracked by the system.",
        "operationId": "ReportsService_ConversionReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.ConversionReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.ConversionReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/country-overview-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "Country overview",
        "description": "Deprecated: Displays performance data grouped by specific countries.",
        "operationId": "ReportsService_CountryOverviewReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.CountryOverviewReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.CountryOverviewReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/daily-overview-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "Daily overview report",
        "description": "Features overview of the daily performance, providing data such as clicks, conversions, revenue, payouts etc. per given day.",
        "operationId": "ReportsService_DailyOverviewReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.DailyOverviewReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.DailyOverviewReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/general-overview-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "General overview",
        "description": "Provides a comprehensive performance overview with data aggregated at multiple levels\n (such as daily, country, affiliate, offer, etc.).",
        "operationId": "ReportsService_GeneralOverviewReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/reports/offer-overview-report/v1": {
      "post": {
        "tags": [
          "Reports V1"
        ],
        "summary": "Offer overview",
        "description": "Deprecated: Shows performance overview grouped by individual offers.",
        "operationId": "ReportsService_OfferOverviewReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.OfferOverviewReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.OfferOverviewReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        }
      }
    },
    "/api/node/oauth/check": {
      "get": {
        "description": "Checks whether an access token or API key is valid. Revoked authorizations, deleted clients and disabled accounts are rejected.",
        "operationId": "OAuth2_CheckCredential",
        "responses": {
          "204": {
            "description": "The credential is valid."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorsv1.ErrorResponse"
                }
              }
            },
            "description": "The credential is missing, malformed, expired or revoked."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorsv1.ErrorResponse"
                }
              }
            },
            "description": "Tenant maintenance."
          }
        },
        "security": [
          {
            "X-Api-Key": []
          },
          {
            "OAuth2": [
              "api"
            ]
          }
        ],
        "summary": "Check the presented credential",
        "tags": [
          "O Auth"
        ]
      }
    },
    "/api/node/oauth/register": {
      "post": {
        "description": "RFC 7591 dynamic client registration, so a client can obtain a client_id without anyone entering one by hand. Registration is\nunauthenticated and rate limited per IP. It always produces a public client holding no secret, limited to the authorization_code\nand refresh_token grants, and owned by nobody: the client can do nothing at all until a resource owner authorizes it on the\nconsent screen. A registration nobody consents to is deleted within two hours. A client asking to authenticate with a secret is\nregistered with none instead, as the response says. Other metadata that cannot be honoured is refused rather than silently narrowed;\nanything else the request sends is ignored.",
        "operationId": "OAuth2_RegisterClient",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/oauth_registration.registrationRequest",
                "summary": "request",
                "description": "Client metadata."
              }
            }
          },
          "description": "Client metadata.",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_registration.registrationResponse"
                }
              }
            },
            "description": "Client registered."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_registration.errorResponse"
                }
              }
            },
            "description": "Unreadable body, a redirect URI that cannot be registered, or other metadata that cannot be honoured."
          },
          "429": {
            "description": "Too many registrations from this address."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorsv1.ErrorResponse"
                }
              }
            },
            "description": "Tenant maintenance."
          }
        },
        "summary": "Register an OAuth client",
        "tags": [
          "O Auth"
        ],
        "security": []
      }
    },
    "/api/node/oauth/revoke": {
      "post": {
        "description": "RFC 7009-style revocation endpoint accepting either an access token or a refresh token. Whichever is presented, revocation takes\nthe complete user authorization behind it, including rotated refresh tokens and every access token derived from the grant. Access\ntokens issued through client_credentials cannot be revoked individually; they return unsupported_token_type. Delete the client to\ninvalidate its access tokens. Unknown tokens return success. Confidential clients authenticate as at the token endpoint.",
        "operationId": "OAuth2_RevokeToken",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "client_id": {
                    "description": "Client identifier; may be sent via HTTP Basic authentication instead.",
                    "type": "string"
                  },
                  "client_secret": {
                    "description": "Client secret; may be sent via HTTP Basic authentication instead.",
                    "format": "password",
                    "type": "string"
                  },
                  "token": {
                    "description": "Token",
                    "type": "string"
                  },
                  "token_type_hint": {
                    "description": "Optional. The token type is detected either way.",
                    "enum": [
                      "access_token",
                      "refresh_token"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "token"
                ],
                "type": "object"
              }
            }
          },
          "description": "Optional. The token type is detected either way.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Token revoked or already invalid."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_token.errorResponse"
                }
              }
            },
            "description": "Malformed request or unsupported_token_type for a client_credentials access token."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_token.errorResponse"
                }
              }
            },
            "description": "Unknown client or wrong client secret."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorsv1.ErrorResponse"
                }
              }
            },
            "description": "Tenant maintenance."
          }
        },
        "summary": "Revoke an OAuth grant",
        "tags": [
          "O Auth"
        ],
        "security": []
      }
    },
    "/api/node/oauth/token": {
      "post": {
        "description": "OAuth2 token endpoint for the client_credentials, authorization_code, and refresh_token grants. Confidential clients authenticate\nwith HTTP Basic or client_id and client_secret form fields, using exactly one method. Authorization codes require the original\nredirect_uri and PKCE code_verifier. Refresh tokens are rotated on every use.",
        "operationId": "OAuth2_CreateToken",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "properties": {
                  "client_id": {
                    "description": "Client identifier; may be sent via HTTP Basic authentication instead.",
                    "type": "string"
                  },
                  "client_secret": {
                    "description": "Client secret; may be sent via HTTP Basic authentication instead.",
                    "format": "password",
                    "type": "string"
                  },
                  "code": {
                    "description": "Required for authorization_code. The single-use code returned by the authorization endpoint.",
                    "type": "string"
                  },
                  "code_verifier": {
                    "description": "Required for authorization_code. PKCE verifier corresponding to the S256 challenge.",
                    "type": "string"
                  },
                  "grant_type": {
                    "description": "Grant type",
                    "enum": [
                      "client_credentials",
                      "authorization_code",
                      "refresh_token"
                    ],
                    "type": "string"
                  },
                  "redirect_uri": {
                    "description": "Required for authorization_code and must exactly match the authorization request.",
                    "format": "uri",
                    "type": "string"
                  },
                  "refresh_token": {
                    "description": "Required for refresh_token. A successful request rotates this token.",
                    "type": "string"
                  },
                  "scope": {
                    "description": "Optional. The only supported scope is api.",
                    "enum": [
                      "api"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "grant_type"
                ],
                "type": "object"
              }
            }
          },
          "description": "Client identifier; may be sent via HTTP Basic authentication instead.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_token.tokenResponse"
                }
              }
            },
            "description": "Access token issued."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_token.errorResponse"
                }
              }
            },
            "description": "Malformed request, invalid grant or scope, or unsupported grant type."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oauth_token.errorResponse"
                }
              }
            },
            "description": "Unknown client or wrong client secret."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorsv1.ErrorResponse"
                }
              }
            },
            "description": "Tenant maintenance."
          }
        },
        "summary": "Create or refresh an access token",
        "tags": [
          "O Auth"
        ],
        "security": []
      }
    }
  },
  "components": {
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth2 client credentials and authorization code grants. Authorization code requests require PKCE S256.",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/api/node/oauth/token",
            "scopes": {
              "api": "Full API access (inherits the account's role permissions)"
            }
          },
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/api/node/oauth/token",
            "refreshUrl": "/api/node/oauth/token",
            "scopes": {
              "api": "Access as the consenting user, subject to current role permissions"
            }
          }
        }
      },
      "X-Api-Key": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key"
      }
    },
    "schemas": {
      "affiliate_bonuses.v1.AffiliateBonus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Affiliate bonus UUID."
          },
          "affiliate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliate_bonuses.v1.AffiliateBonus.Affiliate"
              }
            ],
            "title": "affiliate",
            "description": "Affiliate receiving the bonus."
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "value",
            "description": "Bonus value. It can be negative or zero."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency of the bonus."
          },
          "note": {
            "type": "string",
            "title": "note",
            "description": "Internal note, empty when no note was provided."
          },
          "settled": {
            "type": "boolean",
            "title": "settled",
            "description": "Whether the bonus is included in an account settlement."
          },
          "accountSettlementId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "account_settlement_id",
            "description": "(OPTIONAL) Affiliate-specific settlement UUID, when settled."
          },
          "settlementId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "settlement_id",
            "description": "(OPTIONAL) Parent settlement UUID used to construct the settlement link, when settled."
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "created_at",
            "description": "Timestamp when the bonus was created."
          },
          "billableAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "billable_at",
            "description": "Date from which the bonus counts towards the open balance and can be settled."
          },
          "modifiedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "modified_at",
            "description": "Timestamp when the bonus was last changed."
          }
        },
        "title": "affiliate_bonuses.v1.AffiliateBonus",
        "required": [
          "id",
          "affiliate",
          "value",
          "currency",
          "note",
          "settled",
          "createdAt",
          "billableAt",
          "modifiedAt"
        ],
        "additionalProperties": false,
        "description": "A standalone balance adjustment assigned to an affiliate."
      },
      "affiliate_bonuses.v1.AffiliateBonus.Affiliate": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "account_id",
            "description": "Affiliate account UUID."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Affiliate display name."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "Affiliate email."
          }
        },
        "title": "affiliate_bonuses.v1.AffiliateBonus.Affiliate",
        "required": [
          "accountId",
          "name",
          "email"
        ],
        "additionalProperties": false,
        "description": "Affiliate receiving the bonus."
      },
      "affiliate_bonuses.v1.AffiliateBonusFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "(OPTIONAL) Inclusive creation date range."
          },
          "billableTimeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "billable_time_range",
            "description": "(OPTIONAL) Inclusive billable date range."
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "account_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Affiliate account UUIDs."
          },
          "settlementIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "settlement_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Parent settlement UUIDs."
          }
        },
        "title": "affiliate_bonuses.v1.AffiliateBonusFilters",
        "additionalProperties": false,
        "description": "Filters available when listing affiliate bonuses."
      },
      "affiliate_bonuses.v1.ListAffiliateBonusesRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination"
          },
          "filters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliate_bonuses.v1.AffiliateBonusFilters"
              }
            ],
            "title": "filters",
            "description": "(OPTIONAL) "
          }
        },
        "title": "affiliate_bonuses.v1.ListAffiliateBonusesRequest",
        "required": [
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Request to list affiliate bonuses."
      },
      "affiliate_bonuses.v1.ListAffiliateBonusesResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination"
          },
          "affiliateBonuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/affiliate_bonuses.v1.AffiliateBonus"
            },
            "title": "affiliate_bonuses"
          }
        },
        "title": "affiliate_bonuses.v1.ListAffiliateBonusesResponse",
        "required": [
          "pagination",
          "affiliateBonuses"
        ],
        "additionalProperties": false,
        "description": "Response containing affiliate bonuses and pagination metadata."
      },
      "affiliates.v1.Affiliate": {
        "type": "object",
        "properties": {
          "registeredAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "registered_at",
            "description": "Timestamp of the date of affiliate's registration."
          },
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Public ID of the affiliate."
          },
          "email": {
            "type": "string",
            "title": "email",
            "description": "Email of the affiliate."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Full name of the affiliate."
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.AccountStatus"
              }
            ],
            "title": "status",
            "description": "Status of the affiliate."
          },
          "tierId": {
            "type": "string",
            "title": "tier_id",
            "description": "Identifier of the current tier to which the affiliate is assigned."
          },
          "tierName": {
            "type": "string",
            "title": "tier_name",
            "description": "Name of the tier to which the affiliate is assigned."
          },
          "registrationCountryCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "registration_country_code",
            "description": "Country from which the original affiliate registration came in. Uses ISO 3166-1 alpha-2 (two-letter) format."
          },
          "accountId": {
            "type": "string",
            "title": "account_id",
            "description": "Identifier of the account of the affiliate, useful for getting information about billing details and other information."
          },
          "sourceId": {
            "type": "string",
            "title": "source_id",
            "description": "Traffic source ID."
          },
          "sourceStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.SourceStatus"
              }
            ],
            "title": "source_status",
            "description": "Traffic source status."
          },
          "fraudSuspicion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.FraudSuspicion"
              }
            ],
            "title": "fraud_suspicion",
            "description": "Designates if the affiliate is currently flagged by the fraud suspicion system."
          },
          "ipAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "ip_address",
            "description": "IP address from which the original registration came through."
          },
          "referralAccount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliates.v1.Affiliate.ReferralAccount"
              }
            ],
            "title": "referral_account",
            "description": "Parent affiliate (for MLM)."
          },
          "defaultRedirectDomain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "default_redirect_domain",
            "description": "Default redirect domain for affiliate."
          },
          "managerAccount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliates.v1.Affiliate.ManagerAccount"
              }
            ],
            "title": "manager_account",
            "description": "Manager account."
          },
          "registrationData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
              }
            ],
            "title": "registration_data",
            "description": "(OPTIONAL) Affiliate registration data."
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "(OPTIONAL) "
            },
            "title": "tag_ids",
            "description": "(OPTIONAL) Tag IDs assigned to the affiliate."
          },
          "protected": {
            "type": "boolean",
            "title": "protected",
            "description": "Affiliate is protected and cannot be modified."
          },
          "billingDetail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing_details.v1.BillingDetail"
              }
            ],
            "title": "billing_detail",
            "description": "(OPTIONAL) Billing detail of the affiliate."
          },
          "paymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
            },
            "title": "payment_methods",
            "description": "(OPTIONAL) Payment methods of the affiliate."
          },
          "billingStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.AffiliateBillingStatus"
              }
            ],
            "title": "billing_status",
            "description": "Billing status of the affiliate. Affiliates with an excluded billing status are left out of open balances and settlements."
          }
        },
        "title": "affiliates.v1.Affiliate",
        "required": [
          "protected",
          "billingStatus"
        ],
        "additionalProperties": false,
        "description": "Affiliate"
      },
      "affiliates.v1.Affiliate.ManagerAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the manager."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Full name of the manager."
          },
          "assignedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "assigned_at",
            "description": "Timestamp of the date when the affiliate was assigned to the manager."
          }
        },
        "title": "affiliates.v1.Affiliate.ManagerAccount",
        "additionalProperties": false
      },
      "affiliates.v1.Affiliate.ReferralAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the affiliate."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Full name of the affiliate."
          }
        },
        "title": "affiliates.v1.Affiliate.ReferralAccount",
        "additionalProperties": false,
        "description": "Referral account is the affiliate's unique identifier used throughout the system."
      },
      "affiliates.v1.AffiliateRegistrationData": {
        "type": "object",
        "properties": {
          "telephone": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "telephone",
            "maxLength": 20
          },
          "messenger": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Messenger"
              }
            ],
            "title": "messenger",
            "description": "optional"
          },
          "websiteUrl": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "website_url",
            "format": "uri"
          },
          "promotionChannels": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "promotion_channels",
            "maxLength": 255
          },
          "audience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "audience",
            "maxLength": 255
          },
          "currentTraffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "current_traffic",
            "maxLength": 255
          },
          "expectedTraffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "expected_traffic",
            "maxLength": 255
          },
          "affiliateType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "affiliate_type",
            "maxLength": 255
          },
          "previousExperience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "previous_experience",
            "maxLength": 255
          },
          "customQuestionAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer"
            },
            "title": "custom_question_answers",
            "maxItems": 15
          }
        },
        "title": "affiliates.v1.AffiliateRegistrationData",
        "additionalProperties": false
      },
      "affiliates.v1.GetAffiliateRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "account_id",
            "format": "uuid",
            "description": "Account ID of the affiliate."
          }
        },
        "title": "affiliates.v1.GetAffiliateRequest",
        "additionalProperties": false,
        "description": "Get affiliate details"
      },
      "affiliates.v1.GetAffiliateResponse": {
        "type": "object",
        "properties": {
          "affiliate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/affiliates.v1.Affiliate"
              }
            ],
            "title": "affiliate"
          }
        },
        "title": "affiliates.v1.GetAffiliateResponse",
        "additionalProperties": false,
        "description": "Details of the requested affiliate."
      },
      "billing.v1.AccountSettlement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the account settlement."
          },
          "accountId": {
            "type": "string",
            "title": "account_id",
            "description": "Unique ID of an account associated with the settlement."
          },
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "amount",
            "description": "Settlement amount."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency of the settlement."
          },
          "accountName": {
            "type": "string",
            "title": "account_name",
            "description": "Name of the account."
          },
          "billingDetail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.AccountSettlement.BillingDetail"
              }
            ],
            "title": "billing_detail",
            "description": "Billing details for the settlement."
          },
          "paymentMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentMethod"
              }
            ],
            "title": "payment_method",
            "description": "Payment method used for the settlement."
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "created_at",
            "description": "Creation timestamp."
          },
          "originalCurrencyAmounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.Amount"
            },
            "title": "original_currency_amounts",
            "description": "List of amounts in original currencies."
          },
          "tenantBillingDetail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/settings.v1.BillingDetail"
              }
            ],
            "title": "tenant_billing_detail",
            "description": "Billing details for the tenant."
          },
          "settledUntil": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "settled_until",
            "description": "Time until which all yet unsettled items were included into the settlement."
          },
          "paymentData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData"
              }
            ],
            "title": "payment_data",
            "description": "(OPTIONAL) Payment data associated with the settlement."
          },
          "confirmo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.AccountSettlement.Confirmo"
              }
            ],
            "title": "confirmo",
            "description": "(OPTIONAL) Confirmo export information."
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.AccountSettlementStatus"
              }
            ],
            "title": "status",
            "description": "Status of the account settlement."
          },
          "recoverable": {
            "type": "boolean",
            "title": "recoverable",
            "description": "Indicates when the settlement is in a Tipalti error state an admin can recover (cancel to open\n balance or settle manually/externally)."
          },
          "adjustable": {
            "type": "boolean",
            "title": "adjustable",
            "description": "Indicates whether the settled amount can still be adjusted. Only true while the settlement is\n new (not yet paid, and for Tipalti not yet sent via \"Pay via Tipalti\")."
          }
        },
        "title": "billing.v1.AccountSettlement",
        "required": [
          "id",
          "accountId",
          "amount",
          "currency",
          "accountName",
          "billingDetail",
          "paymentMethod",
          "createdAt",
          "originalCurrencyAmounts",
          "tenantBillingDetail",
          "settledUntil",
          "status",
          "recoverable",
          "adjustable"
        ],
        "additionalProperties": false
      },
      "billing.v1.AccountSettlement.Amount": {
        "type": "object",
        "properties": {
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "amount",
            "description": "Amount value."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency of the amount."
          },
          "exchangeRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "exchange_rate",
            "description": "(OPTIONAL) Exchange rate applied."
          },
          "exchangedAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "exchanged_amount",
            "description": "Amount with applied exchange rate."
          },
          "earningType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.EarningType"
              }
            ],
            "title": "earning_type",
            "description": "Earning type associated with the amount."
          }
        },
        "title": "billing.v1.AccountSettlement.Amount",
        "required": [
          "amount",
          "currency",
          "exchangedAmount",
          "earningType"
        ],
        "additionalProperties": false,
        "description": "Amount contains details about the settlement amount."
      },
      "billing.v1.AccountSettlement.BillingDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "Name associated with the billing detail."
          },
          "addressLine1": {
            "type": "string",
            "title": "address_line1",
            "description": "First line of the address."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "City of the address."
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code of the address."
          },
          "postalCode": {
            "type": "string",
            "title": "postal_code",
            "description": "Postal code of the address."
          },
          "addressLine2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "address_line2",
            "description": "Second line of the address (optional)."
          },
          "invoicingEmail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "invoicing_email",
            "description": "Invoicing email (optional)."
          },
          "vat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "vat",
            "description": "VAT number (optional)."
          }
        },
        "title": "billing.v1.AccountSettlement.BillingDetail",
        "additionalProperties": false,
        "description": "BillingDetail contains billing-related information."
      },
      "billing.v1.AccountSettlement.Confirmo": {
        "type": "object",
        "properties": {
          "exportable": {
            "type": "boolean",
            "title": "exportable"
          },
          "unexportableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.ConfirmoUnexportableReason"
              }
            ],
            "title": "unexportable_reason"
          }
        },
        "title": "billing.v1.AccountSettlement.Confirmo",
        "required": [
          "exportable",
          "unexportableReason"
        ],
        "additionalProperties": false
      },
      "billing.v1.AccountSettlement.PaymentData": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "stripeConnect": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData"
                  }
                ],
                "title": "stripe_connect",
                "description": "Stripe Connect payment data."
              }
            },
            "title": "stripe_connect"
          },
          {
            "type": "object",
            "properties": {
              "tipalti": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData"
                  }
                ],
                "title": "tipalti",
                "description": "Tipalti payment data."
              }
            },
            "title": "tipalti"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "stripeConnect"
                  ]
                },
                {
                  "required": [
                    "tipalti"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "stripeConnect"
                    ]
                  },
                  {
                    "required": [
                      "tipalti"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "billing.v1.AccountSettlement.PaymentData",
        "description": "PaymentData contains payment-related information."
      },
      "billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData": {
        "type": "object",
        "properties": {
          "transferId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "transfer_id",
            "description": "(OPTIONAL) Stripe transfer id (tr_...) of the successful transfer, the reconciliation handle in the\n Stripe dashboard. Unset until a transfer succeeds."
          },
          "lastError": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData.Error"
              }
            ],
            "title": "last_error",
            "description": "(OPTIONAL) Set when the most recent transfer attempt failed. Cleared once a transfer succeeds."
          }
        },
        "title": "billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData",
        "additionalProperties": false,
        "description": "Stripe Connect payment data holds details specific to Stripe Connect transfers."
      },
      "billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData.Error": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "code": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/stripe_connect.v1.TransferErrorCode"
                  }
                ],
                "title": "code",
                "description": "(OPTIONAL) A failure detected by Trackdesk. The client maps this code to a localized message."
              }
            },
            "title": "code"
          },
          {
            "type": "object",
            "properties": {
              "stripeMessage": {
                "type": "string",
                "title": "stripe_message",
                "description": "(OPTIONAL) A message forwarded from Stripe. The client displays it as-is."
              }
            },
            "title": "stripe_message"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "code"
                  ]
                },
                {
                  "required": [
                    "stripeMessage"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "code"
                    ]
                  },
                  {
                    "required": [
                      "stripeMessage"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "billing.v1.AccountSettlement.PaymentData.StripeConnectPaymentData.Error"
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData": {
        "type": "object",
        "properties": {
          "paymentInstructions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction"
            },
            "title": "payment_instructions",
            "description": "List of payment instructions.\n\n Each instruction represents a payment attempt made by Tipalti system.\n For more information about the containing data you can check the Tipalti documentation: https://documentation.tipalti.com/reference/get_api-v1-payment-batches-id-instructions"
          }
        },
        "title": "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData",
        "additionalProperties": false,
        "description": "TipaltiPaymentData holds details specific to Tipalti payments."
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "title": "payment_batch_id",
            "description": "Unique identifier for the payment batch."
          },
          "payeeIsPayable": {
            "type": "boolean",
            "title": "payee_is_payable",
            "description": "Indicates if the payee is payable."
          },
          "instructionStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "instruction_status",
            "description": "Status of the instruction."
          },
          "paymentStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "payment_status",
            "description": "Status of the payment."
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction.Error"
            },
            "title": "errors",
            "description": "List of errors in the payment instruction.\n\n Provides details on errors within a payment instruction as received from Tipalti.\n For more information you can check Tipalti documentation: https://documentation.tipalti.com/reference/http-status-codes#api-error-object"
          }
        },
        "title": "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction",
        "additionalProperties": false
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction.Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "Error code."
          },
          "message": {
            "type": "string",
            "title": "message",
            "description": "Error message."
          },
          "docUrl": {
            "type": "string",
            "title": "doc_url",
            "description": "Documentation URL."
          },
          "type": {
            "type": "string",
            "title": "type",
            "description": "Type of error."
          }
        },
        "title": "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction.Error",
        "additionalProperties": false
      },
      "billing.v1.AccountSettlement.PaymentMethod": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
              }
            ],
            "title": "type",
            "description": "Type of the payment method."
          },
          "currencyCode": {
            "type": "string",
            "title": "currency_code",
            "description": "Currency code for the payment method."
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
              }
            ],
            "title": "data",
            "description": "Data associated with the payment method."
          }
        },
        "title": "billing.v1.AccountSettlement.PaymentMethod",
        "additionalProperties": false,
        "description": "PaymentMethod contains payment method details."
      },
      "billing.v1.GetBalancesForAccountRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "account_id",
            "format": "uuid",
            "description": "ID of the affiliate to whom balances are credited."
          },
          "until": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "until",
            "description": "(OPTIONAL) Day until which the open balance is computed. When omitted, the current time is used."
          }
        },
        "title": "billing.v1.GetBalancesForAccountRequest",
        "required": [
          "accountId"
        ],
        "additionalProperties": false
      },
      "billing.v1.GetBalancesForAccountResponse": {
        "type": "object",
        "properties": {
          "conversionOpenBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_open_balance",
            "description": "Total balance generated from approved conversions."
          },
          "conversionOnHoldBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_on_hold_balance",
            "description": "Total balance generated from on-hold conversions."
          },
          "commissionOpenBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "commission_open_balance",
            "description": "Total balance generated from approved MLM commissions."
          },
          "commissionOnHoldBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "commission_on_hold_balance",
            "description": "Total balance generated from on-hold MLM commissions."
          },
          "clientRevshareOpenBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "client_revshare_open_balance",
            "description": "Total balance generated from client revenue shares."
          },
          "openBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "open_balance",
            "description": "Sum of balance generated from approved conversions and MLM commissions."
          },
          "onHoldBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "on_hold_balance",
            "description": "Sum of balance generated from on-hold conversions and MLM commissions."
          },
          "settledBalance": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.GetBalancesForAccountResponse.SettledBalanceAmount"
            },
            "title": "settled_balance",
            "description": "Settled balance amounts grouped by currency."
          },
          "defaultPaymentMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.PaymentMethodBalance"
              }
            ],
            "title": "default_payment_method",
            "description": "(OPTIONAL) Default payment method balance with open balance converted to the payment method's currency."
          },
          "usdBalances": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing.v1.GetBalancesForAccountResponse.UsdBalances"
              }
            ],
            "title": "usd_balances",
            "description": "(OPTIONAL) Open and settled balances converted to USD. Absent when no exchange rate is available to convert to USD."
          },
          "affiliateBonusOpenBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "affiliate_bonus_open_balance",
            "description": "Total balance generated from unsettled affiliate bonuses."
          }
        },
        "title": "billing.v1.GetBalancesForAccountResponse",
        "required": [
          "conversionOpenBalance",
          "conversionOnHoldBalance",
          "commissionOpenBalance",
          "commissionOnHoldBalance",
          "clientRevshareOpenBalance",
          "openBalance",
          "onHoldBalance",
          "settledBalance",
          "affiliateBonusOpenBalance"
        ],
        "additionalProperties": false
      },
      "billing.v1.GetBalancesForAccountResponse.SettledBalanceAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "amount",
            "description": "Settled amount in the given currency."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency of the settled amount."
          }
        },
        "title": "billing.v1.GetBalancesForAccountResponse.SettledBalanceAmount",
        "required": [
          "amount",
          "currency"
        ],
        "additionalProperties": false,
        "description": "Settled balance amounts grouped by currency."
      },
      "billing.v1.GetBalancesForAccountResponse.UsdBalances": {
        "type": "object",
        "properties": {
          "openBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "open_balance",
            "description": "Open balance converted to USD."
          },
          "openBalanceApproximate": {
            "type": "boolean",
            "title": "open_balance_approximate",
            "description": "True when the primary currency differs from USD, so the open balance is an approximate conversion."
          },
          "settledBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "settled_balance",
            "description": "Settled balance summed in USD."
          }
        },
        "title": "billing.v1.GetBalancesForAccountResponse.UsdBalances",
        "required": [
          "openBalance",
          "openBalanceApproximate",
          "settledBalance"
        ],
        "additionalProperties": false,
        "description": "Open and settled balances converted to USD, for consumers that always display balances in USD."
      },
      "billing.v1.ListAccountSettlementsRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination",
            "description": "Pagination."
          },
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "Timerange for which to list settlements."
          },
          "accountId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "account_id",
            "format": "uuid",
            "description": "ID of affiliate for which to show affiliate settlements."
          }
        },
        "title": "billing.v1.ListAccountSettlementsRequest",
        "required": [
          "pagination",
          "timeRange"
        ],
        "additionalProperties": false
      },
      "billing.v1.ListAccountSettlementsResponse": {
        "type": "object",
        "properties": {
          "accountSettlements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement"
            },
            "title": "account_settlements",
            "description": "Individual affiliate settlements."
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination",
            "description": "Pagination."
          }
        },
        "title": "billing.v1.ListAccountSettlementsResponse",
        "required": [
          "pagination"
        ],
        "additionalProperties": false
      },
      "billing.v1.PaymentMethodBalance": {
        "type": "object",
        "properties": {
          "paymentMethodType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
              }
            ],
            "title": "payment_method_type",
            "description": "Payment method type."
          },
          "paymentMethodCurrency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "payment_method_currency",
            "description": "Payment method currency."
          },
          "openBalance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "open_balance",
            "description": "Open balance."
          }
        },
        "title": "billing.v1.PaymentMethodBalance",
        "required": [
          "paymentMethodType",
          "paymentMethodCurrency",
          "openBalance"
        ],
        "additionalProperties": false
      },
      "billing_details.v1.BillingDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique identifier of the billing detail"
          },
          "accountId": {
            "type": "string",
            "title": "account_id",
            "description": "Account for which the billing details are set. Commonly used for identifying details of affiliates."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Full name present on the billing details"
          },
          "addressLine1": {
            "type": "string",
            "title": "address_line1",
            "description": "First line of the address"
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "City of the address"
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code for the address. Uses ISO-3166, two letter formatting."
          },
          "subdivisionCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "subdivision_code",
            "description": "Subdivision code for the address. Uses ISO 3166-2, two letter formatting."
          },
          "postalCode": {
            "type": "string",
            "title": "postal_code",
            "description": "Postal code of the address"
          },
          "addressLine2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "address_line2",
            "description": "Second line of the address"
          },
          "invoicingEmail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "invoicing_email",
            "description": "Email used for invoicing"
          },
          "vat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "vat",
            "description": "VAT information"
          }
        },
        "title": "billing_details.v1.BillingDetail",
        "additionalProperties": false,
        "description": "Billing detail"
      },
      "billing_details.v1.SetBillingDetailRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "account_id",
            "format": "uuid",
            "description": "Identifier of the account"
          },
          "name": {
            "type": "string",
            "title": "name",
            "maxLength": 255,
            "minLength": 1,
            "description": "Full name on the billing details"
          },
          "addressLine1": {
            "type": "string",
            "title": "address_line1",
            "maxLength": 255,
            "minLength": 1,
            "description": "First line of the address"
          },
          "city": {
            "type": "string",
            "title": "city",
            "maxLength": 255,
            "minLength": 1,
            "description": "City of the address"
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "pattern": "^[A-Z]{2}$",
            "description": "Country code for the address. Uses ISO-3166, two letter formatting."
          },
          "subdivisionCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "subdivision_code",
            "pattern": "^[A-Z]{2}$",
            "description": "Subdivision code for the address. Uses ISO-3166-2, two letter formatting."
          },
          "postalCode": {
            "type": "string",
            "title": "postal_code",
            "maxLength": 50,
            "minLength": 1,
            "description": "Postal code of the address"
          },
          "addressLine2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "address_line2",
            "maxLength": 255,
            "minLength": 1,
            "description": "Second line of the address"
          },
          "invoicingEmail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "invoicing_email",
            "format": "email",
            "description": "Email used for invoicing"
          },
          "vat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "vat",
            "maxLength": 50,
            "minLength": 1,
            "description": "VAT information"
          }
        },
        "title": "billing_details.v1.SetBillingDetailRequest",
        "additionalProperties": false,
        "description": "Set billing details"
      },
      "billing_details.v1.SetBillingDetailResponse": {
        "type": "object",
        "properties": {
          "billingDetail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/billing_details.v1.BillingDetail"
              }
            ],
            "title": "billing_detail"
          }
        },
        "title": "billing_details.v1.SetBillingDetailResponse",
        "additionalProperties": false,
        "description": "Feedback message for update of billing details."
      },
      "conversion_types.v1.ConversionType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique identifier of the conversion type."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "Code of the conversion type."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Name of the conversion type (in human readable format)"
          },
          "visible": {
            "type": "boolean",
            "title": "visible",
            "description": "Whether the conversion type is offered in the UI."
          }
        },
        "title": "conversion_types.v1.ConversionType",
        "additionalProperties": false,
        "description": "Conversion type"
      },
      "conversion_types.v1.ListConversionTypesAvailableForCidRequest": {
        "type": "object",
        "properties": {
          "cid": {
            "type": "string",
            "title": "cid",
            "format": "uuid"
          }
        },
        "title": "conversion_types.v1.ListConversionTypesAvailableForCidRequest",
        "additionalProperties": false,
        "description": "Get a list of conversion types available for requesting click ID."
      },
      "conversion_types.v1.ListConversionTypesAvailableForCidResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversion_types.v1.ListConversionTypesAvailableForCidResponse.Row"
            },
            "title": "rows"
          }
        },
        "title": "conversion_types.v1.ListConversionTypesAvailableForCidResponse",
        "additionalProperties": false,
        "description": "List of conversion types available for the requesting click ID."
      },
      "conversion_types.v1.ListConversionTypesAvailableForCidResponse.Row": {
        "type": "object",
        "properties": {
          "conversionType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/conversion_types.v1.ConversionType"
              }
            ],
            "title": "conversion_type",
            "description": "Conversion type."
          },
          "conversionValueType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.ConversionValueType"
              }
            ],
            "title": "conversion_value_type",
            "description": "Value assigned for the conversion type."
          }
        },
        "title": "conversion_types.v1.ListConversionTypesAvailableForCidResponse.Row",
        "additionalProperties": false
      },
      "conversions.v1.ConversionStatus": {
        "type": "string",
        "title": "conversions.v1.ConversionStatus",
        "enum": [
          "CONVERSION_STATUS_UNSPECIFIED",
          "CONVERSION_STATUS_APPROVED",
          "CONVERSION_STATUS_FRAUD",
          "CONVERSION_STATUS_NOT_ALLOWED",
          "CONVERSION_STATUS_BLOCKED",
          "CONVERSION_STATUS_ON_HOLD",
          "CONVERSION_STATUS_PENDING",
          "CONVERSION_STATUS_REFUNDED",
          "CONVERSION_STATUS_REJECTED",
          "CONVERSION_STATUS_TEST",
          "CONVERSION_STATUS_QUALITY_CONTROL"
        ],
        "description": "Check all validations on any index update."
      },
      "coupons.v1.Coupon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the coupon."
          },
          "revenueOrigin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/coupons.v1.Coupon.RevenueOrigin"
              }
            ],
            "title": "revenue_origin",
            "description": "Advertiser associated with the coupon."
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/coupons.v1.Coupon.Source"
              }
            ],
            "title": "source",
            "description": "Traffic source able to trigger coupon redemption (essentially an affiliate)."
          },
          "offer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/coupons.v1.Coupon.Offer"
              }
            ],
            "title": "offer",
            "description": "Offer in which the coupon can be redeemed."
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "The code of the coupon."
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/coupons.v1.CouponStatus"
              }
            ],
            "title": "status",
            "description": "Status of the coupon."
          },
          "revenueOriginId": {
            "type": "string",
            "title": "revenue_origin_id",
            "description": "Deprecated: Unique ID of advertiser associated with the coupon."
          }
        },
        "title": "coupons.v1.Coupon",
        "additionalProperties": false,
        "description": "Coupon"
      },
      "coupons.v1.Coupon.Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the offer."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Name of the offer."
          }
        },
        "title": "coupons.v1.Coupon.Offer",
        "additionalProperties": false,
        "description": "An offer for which the coupon can be redeemed."
      },
      "coupons.v1.Coupon.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique ID of the advertiser."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Name of the advertiser."
          }
        },
        "title": "coupons.v1.Coupon.RevenueOrigin",
        "additionalProperties": false,
        "description": "Advertiser associated with the coupon."
      },
      "coupons.v1.Coupon.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique system ID of the traffic source."
          },
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Public ID."
          }
        },
        "title": "coupons.v1.Coupon.Source",
        "additionalProperties": false,
        "description": "Traffic source able to trigger coupon redemption (essentially an affiliate)."
      },
      "coupons.v1.CouponStatus": {
        "type": "string",
        "title": "coupons.v1.CouponStatus",
        "enum": [
          "COUPON_STATUS_UNSPECIFIED",
          "COUPON_STATUS_ACTIVE",
          "COUPON_STATUS_INACTIVE",
          "COUPON_STATUS_REMOVED"
        ]
      },
      "coupons.v1.ListCouponsRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "revenue_origin_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Revenue origin IDs."
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "source_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Traffic source IDs."
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "offer_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Offer IDs."
          },
          "codes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 2,
              "description": "(OPTIONAL) "
            },
            "title": "codes",
            "uniqueItems": true,
            "description": "(OPTIONAL) Coupon codes."
          },
          "statuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/coupons.v1.CouponStatus"
            },
            "title": "statuses",
            "uniqueItems": true,
            "description": "(OPTIONAL) Coupon statuses."
          }
        },
        "title": "coupons.v1.ListCouponsRequest",
        "required": [
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Generate a list of existing coupons."
      },
      "coupons.v1.ListCouponsResponse": {
        "type": "object",
        "properties": {
          "coupons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/coupons.v1.Coupon"
            },
            "title": "coupons",
            "description": "Coupon codes"
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination",
            "description": "Pagination"
          }
        },
        "title": "coupons.v1.ListCouponsResponse",
        "required": [
          "pagination"
        ],
        "additionalProperties": false,
        "description": "List of coupons existing in the system."
      },
      "enums.v1.AccountSettlementStatus": {
        "type": "string",
        "title": "enums.v1.AccountSettlementStatus",
        "enum": [
          "ACCOUNT_SETTLEMENT_STATUS_UNSPECIFIED",
          "ACCOUNT_SETTLEMENT_STATUS_ERROR",
          "ACCOUNT_SETTLEMENT_STATUS_IN_PROGRESS",
          "ACCOUNT_SETTLEMENT_STATUS_NEW",
          "ACCOUNT_SETTLEMENT_STATUS_PAID",
          "ACCOUNT_SETTLEMENT_STATUS_SETTLED_MANUALLY"
        ]
      },
      "enums.v1.AccountStatus": {
        "type": "string",
        "title": "enums.v1.AccountStatus",
        "enum": [
          "ACCOUNT_STATUS_UNSPECIFIED",
          "ACCOUNT_STATUS_DISABLED",
          "ACCOUNT_STATUS_ENABLED",
          "ACCOUNT_STATUS_PENDING"
        ]
      },
      "enums.v1.AffiliateBillingStatus": {
        "type": "string",
        "title": "enums.v1.AffiliateBillingStatus",
        "enum": [
          "AFFILIATE_BILLING_STATUS_UNSPECIFIED",
          "AFFILIATE_BILLING_STATUS_EXCLUDED",
          "AFFILIATE_BILLING_STATUS_INCLUDED"
        ]
      },
      "enums.v1.CapFrequency": {
        "type": "string",
        "title": "enums.v1.CapFrequency",
        "enum": [
          "CAP_FREQUENCY_UNSPECIFIED",
          "CAP_FREQUENCY_DAILY",
          "CAP_FREQUENCY_WEEKLY",
          "CAP_FREQUENCY_MONTHLY"
        ]
      },
      "enums.v1.ConfirmoUnexportableReason": {
        "type": "string",
        "title": "enums.v1.ConfirmoUnexportableReason",
        "enum": [
          "CONFIRMO_UNEXPORTABLE_REASON_UNSPECIFIED",
          "CONFIRMO_UNEXPORTABLE_REASON_CURRENCY_FROM_NOT_SUPPORTED",
          "CONFIRMO_UNEXPORTABLE_REASON_PAYMENT_METHOD_NOT_SUPPORTED"
        ]
      },
      "enums.v1.ConversionValueType": {
        "type": "string",
        "title": "enums.v1.ConversionValueType",
        "enum": [
          "CONVERSION_VALUE_TYPE_UNSPECIFIED",
          "CONVERSION_VALUE_TYPE_AMOUNT",
          "CONVERSION_VALUE_TYPE_NO_REVENUE",
          "CONVERSION_VALUE_TYPE_RATE",
          "CONVERSION_VALUE_TYPE_REVENUE_RATE_AND_COST_AMOUNT"
        ]
      },
      "enums.v1.CreativeType": {
        "type": "string",
        "title": "enums.v1.CreativeType",
        "enum": [
          "CREATIVE_TYPE_UNSPECIFIED",
          "CREATIVE_TYPE_IMAGE_BANNER",
          "CREATIVE_TYPE_HTML5_BANNER",
          "CREATIVE_TYPE_TEXT_LINK",
          "CREATIVE_TYPE_YOUTUBE_VIDEO",
          "CREATIVE_TYPE_VIDEO",
          "CREATIVE_TYPE_VIMEO_VIDEO",
          "CREATIVE_TYPE_FACEBOOK_POST",
          "CREATIVE_TYPE_TWITTER_POST",
          "CREATIVE_TYPE_PRODUCT_FEED",
          "CREATIVE_TYPE_ZIP"
        ]
      },
      "enums.v1.Device": {
        "type": "string",
        "title": "enums.v1.Device",
        "enum": [
          "DEVICE_UNSPECIFIED",
          "DEVICE_DESKTOP",
          "DEVICE_MOBILE",
          "DEVICE_TABLET"
        ]
      },
      "enums.v1.EarningType": {
        "type": "string",
        "title": "enums.v1.EarningType",
        "enum": [
          "EARNING_TYPE_UNSPECIFIED",
          "EARNING_TYPE_ADJUSTMENT",
          "EARNING_TYPE_AFFILIATE_BONUS",
          "EARNING_TYPE_CLIENT_REVSHARE",
          "EARNING_TYPE_COMMISSION",
          "EARNING_TYPE_CONVERSION"
        ]
      },
      "enums.v1.FraudDetectionRule": {
        "type": "string",
        "title": "enums.v1.FraudDetectionRule",
        "enum": [
          "FRAUD_DETECTION_RULE_UNSPECIFIED",
          "FRAUD_DETECTION_RULE_AFFILIATE_SAME_BILLING_DETAILS",
          "FRAUD_DETECTION_RULE_AFFILIATE_SAME_IP_ADDRESS",
          "FRAUD_DETECTION_RULE_CLICK_CLOUD_PROVIDER_IP",
          "FRAUD_DETECTION_RULE_CLICK_IP_ADDRESS_FREQUENCY",
          "FRAUD_DETECTION_RULE_CLICK_KNOWN_BOT",
          "FRAUD_DETECTION_RULE_CLICK_UNKNOWN_DEVICE",
          "FRAUD_DETECTION_RULE_CLICK_UNRECOGNIZED_USER_AGENT",
          "FRAUD_DETECTION_RULE_CLICK_UNSUPPORTED_OS_VERSION",
          "FRAUD_DETECTION_RULE_CONVERSION_ADV_S_MATCHES_AFFILIATE_EMAIL",
          "FRAUD_DETECTION_RULE_CONVERSION_EXTERNAL_CID_MATCHES_AFFILIATE_EMAIL",
          "FRAUD_DETECTION_RULE_CONVERSION_IP_MATCHES_AFFILIATE_IP",
          "FRAUD_DETECTION_RULE_CONVERSION_SUSPICIOUS_CLICK",
          "FRAUD_DETECTION_RULE_CONVERSION_TIME_AFTER_CONVERSION_SOURCE"
        ]
      },
      "enums.v1.LandingPageStatus": {
        "type": "string",
        "title": "enums.v1.LandingPageStatus",
        "enum": [
          "LANDING_PAGE_STATUS_UNSPECIFIED",
          "LANDING_PAGE_STATUS_ENABLED",
          "LANDING_PAGE_STATUS_HIDDEN",
          "LANDING_PAGE_STATUS_DISABLED"
        ]
      },
      "enums.v1.OfferCapCalculationMethod": {
        "type": "string",
        "title": "enums.v1.OfferCapCalculationMethod",
        "enum": [
          "OFFER_CAP_CALCULATION_METHOD_UNSPECIFIED",
          "OFFER_CAP_CALCULATION_METHOD_NUMBER_OF_CONVERSIONS",
          "OFFER_CAP_CALCULATION_METHOD_SUM_OF_REVENUE",
          "OFFER_CAP_CALCULATION_METHOD_NUMBER_OF_CLICKS"
        ]
      },
      "enums.v1.OperatingSystem": {
        "type": "string",
        "title": "enums.v1.OperatingSystem",
        "enum": [
          "OPERATING_SYSTEM_UNSPECIFIED",
          "OPERATING_SYSTEM_ANDROID",
          "OPERATING_SYSTEM_CHROME_OS",
          "OPERATING_SYSTEM_I_OS",
          "OPERATING_SYSTEM_LINUX",
          "OPERATING_SYSTEM_MAC_OS",
          "OPERATING_SYSTEM_WINDOWS"
        ]
      },
      "enums.v1.SourceStatus": {
        "type": "string",
        "title": "enums.v1.SourceStatus",
        "enum": [
          "SOURCE_STATUS_UNSPECIFIED",
          "SOURCE_STATUS_DISABLED",
          "SOURCE_STATUS_ENABLED"
        ]
      },
      "enums.v1.TagScope": {
        "type": "string",
        "title": "enums.v1.TagScope",
        "enum": [
          "TAG_SCOPE_UNSPECIFIED",
          "TAG_SCOPE_ADVERTISERS",
          "TAG_SCOPE_AFFILIATE_MANAGERS",
          "TAG_SCOPE_AFFILIATES",
          "TAG_SCOPE_OFFERS"
        ]
      },
      "enums.v1.Weekday": {
        "type": "string",
        "title": "enums.v1.Weekday",
        "enum": [
          "WEEKDAY_UNSPECIFIED",
          "WEEKDAY_MONDAY",
          "WEEKDAY_TUESDAY",
          "WEEKDAY_WEDNESDAY",
          "WEEKDAY_THURSDAY",
          "WEEKDAY_FRIDAY",
          "WEEKDAY_SATURDAY",
          "WEEKDAY_SUNDAY"
        ]
      },
      "google.protobuf.Any": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "A URL/resource name that uniquely identifies the type of the serialized message."
          }
        },
        "additionalProperties": true,
        "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message."
      },
      "google.protobuf.Int32Value": {
        "type": "integer",
        "format": "int32",
        "minimum": -2147483648,
        "maximum": 2147483647
      },
      "google.protobuf.Int64Value": {
        "type": "string",
        "pattern": "^-?[0-9]+$"
      },
      "google.protobuf.StringValue": {
        "type": "string",
        "description": "A string value; `null` is also accepted."
      },
      "google.protobuf.Timestamp": {
        "type": "string",
        "examples": [
          "2023-01-15T01:30:15.01Z",
          "2024-12-25T12:00:00Z"
        ],
        "format": "date-time",
        "description": "A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC."
      },
      "google.protobuf.UInt32Value": {
        "type": "integer",
        "format": "int64",
        "minimum": 0,
        "maximum": 4294967295
      },
      "google.protobuf.UInt64Value": {
        "type": "string",
        "pattern": "^[0-9]+$"
      },
      "google.rpc.Status": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "The status code, which should be an enum value of google.rpc.Code."
          },
          "message": {
            "type": "string",
            "description": "A developer-facing error message."
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/google.protobuf.Any"
            },
            "description": "A list of messages that carry the error details."
          }
        },
        "description": "The Status type defines a logical error model suitable for gRPC and REST APIs."
      },
      "locations.v1.Location": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "title": "country_code"
          },
          "subdivision": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "subdivision",
            "description": "(OPTIONAL) "
          },
          "city": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "city",
            "description": "(OPTIONAL) "
          }
        },
        "title": "locations.v1.Location",
        "required": [
          "countryCode"
        ],
        "additionalProperties": false
      },
      "locations.v1.Locations": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/locations.v1.Location"
            },
            "title": "values"
          },
          "excluded": {
            "type": "boolean",
            "title": "excluded"
          }
        },
        "title": "locations.v1.Locations",
        "required": [
          "values",
          "excluded"
        ],
        "additionalProperties": false
      },
      "offer_caps.v1.Cap": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Cap identifier (UUID)."
          },
          "offerId": {
            "type": "string",
            "title": "offer_id",
            "description": "Identifier (UUID) of the offer the cap belongs to."
          },
          "conversionTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversion_types.v1.ConversionType"
            },
            "title": "conversion_types",
            "description": "Conversion types the cap applies to."
          },
          "calculationMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.OfferCapCalculationMethod"
              }
            ],
            "title": "calculation_method",
            "description": "Whether the cap counts the number of conversions or sums up their revenue."
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "description": "Conversion statuses counted towards the cap."
          },
          "limits": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Cap.Limits"
              }
            ],
            "title": "limits",
            "description": "Limits the cap enforces."
          },
          "fallback": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Fallback"
              }
            ],
            "title": "fallback",
            "description": "(OPTIONAL) Destination visitors are redirected to once the cap is reached.\n Unset when the cap redirects to the default fallback destination."
          },
          "utilization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Cap.Utilization"
              }
            ],
            "title": "utilization",
            "description": "Current consumption of the cap."
          },
          "customPeriodStarts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.CustomPeriodStarts"
              }
            ],
            "title": "custom_period_starts",
            "description": "Days the periods of the cap start on, as they were customized. A period left unset starts on the\n default day — Monday for a week, the first day of the month."
          }
        },
        "title": "offer_caps.v1.Cap",
        "required": [
          "id",
          "offerId",
          "conversionTypes",
          "calculationMethod",
          "conversionStatuses",
          "limits",
          "utilization",
          "customPeriodStarts"
        ],
        "additionalProperties": false,
        "description": "Conversion cap configured on an offer, together with its current utilization."
      },
      "offer_caps.v1.Cap.Limits": {
        "type": "object",
        "properties": {
          "total": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Limit"
              }
            ],
            "title": "total",
            "description": "Limit applied to the offer as a whole, across all sources.\n Unset when the cap does not restrict the offer as a whole."
          },
          "bySource": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Cap.Limits.SourceLimit"
              }
            ],
            "title": "by_source",
            "description": "Limits applied to individual affiliate sources."
          }
        },
        "title": "offer_caps.v1.Cap.Limits",
        "required": [
          "total",
          "bySource"
        ],
        "additionalProperties": false,
        "description": "Limits the cap enforces."
      },
      "offer_caps.v1.Cap.Limits.SourceLimit": {
        "type": "object",
        "properties": {
          "default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Limit"
              }
            ],
            "title": "default",
            "description": "Limit applied to every source without an individual override.\n Unset when the cap does not restrict sources by default."
          },
          "individual": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offer_caps.v1.Cap.Limits.SourceLimit.Individual"
            },
            "title": "individual",
            "description": "Per-source overrides of the default limit."
          }
        },
        "title": "offer_caps.v1.Cap.Limits.SourceLimit",
        "required": [
          "default",
          "individual"
        ],
        "additionalProperties": false,
        "description": "Limits applied per affiliate source."
      },
      "offer_caps.v1.Cap.Limits.SourceLimit.Individual": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string",
            "title": "source_id",
            "description": "Identifier (UUID) of the source the limit applies to."
          },
          "limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Limit"
              }
            ],
            "title": "limit",
            "description": "Limit applied to the source instead of the default one."
          }
        },
        "title": "offer_caps.v1.Cap.Limits.SourceLimit.Individual",
        "required": [
          "sourceId",
          "limit"
        ],
        "additionalProperties": false,
        "description": "Limit of a single source, overriding the default one."
      },
      "offer_caps.v1.Cap.Utilization": {
        "type": "object",
        "properties": {
          "totalNumberOfConversions": {
            "type": "string",
            "title": "total_number_of_conversions",
            "format": "int64",
            "description": "Number of conversions counted across all sources in the current day.\n Deprecated: use `by_period` instead, it is empty when the cap has no daily frequency.",
            "deprecated": true
          },
          "totalSumOfRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_sum_of_revenue",
            "description": "Revenue counted across all sources in the current day.\n Deprecated: use `by_period` instead, it is empty when the cap has no daily frequency.",
            "deprecated": true
          },
          "bySource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offer_caps.v1.Cap.Utilization.SourceUtilization"
            },
            "title": "by_source",
            "description": "Breakdown of the current day's consumption by affiliate source.\n Deprecated: use `by_period` instead, it is empty when the cap has no daily frequency.",
            "deprecated": true
          },
          "byPeriod": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offer_caps.v1.Cap.Utilization.PeriodUtilization"
            },
            "title": "by_period",
            "description": "Consumption within each period the cap enforces."
          }
        },
        "title": "offer_caps.v1.Cap.Utilization",
        "required": [
          "totalNumberOfConversions",
          "totalSumOfRevenue",
          "bySource",
          "byPeriod"
        ],
        "additionalProperties": false,
        "description": "Consumption of the cap within each period it enforces, counted from the tenant's midnight.\n Only conversions matching the cap's conversion types and conversion statuses are counted."
      },
      "offer_caps.v1.Cap.Utilization.PeriodUtilization": {
        "type": "object",
        "properties": {
          "frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.CapFrequency"
              }
            ],
            "title": "frequency",
            "description": "Frequency of the period."
          },
          "startedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "started_at",
            "description": "Moment the period started at, in the tenant's timezone."
          },
          "totalNumberOfConversions": {
            "type": "string",
            "title": "total_number_of_conversions",
            "format": "int64",
            "description": "Number of conversions counted across all sources."
          },
          "totalSumOfRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_sum_of_revenue",
            "description": "Revenue counted across all sources."
          },
          "bySource": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offer_caps.v1.Cap.Utilization.SourceUtilization"
            },
            "title": "by_source",
            "description": "Breakdown of the consumption by affiliate source."
          }
        },
        "title": "offer_caps.v1.Cap.Utilization.PeriodUtilization",
        "required": [
          "frequency",
          "startedAt",
          "totalNumberOfConversions",
          "totalSumOfRevenue",
          "bySource"
        ],
        "additionalProperties": false,
        "description": "Consumption within a single period the cap enforces."
      },
      "offer_caps.v1.Cap.Utilization.SourceUtilization": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string",
            "title": "source_id",
            "description": "Identifier (UUID) of the source the consumption belongs to."
          },
          "numberOfConversions": {
            "type": "string",
            "title": "number_of_conversions",
            "format": "int64",
            "description": "Number of conversions attributed to the source."
          },
          "sumOfRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "sum_of_revenue",
            "description": "Revenue attributed to the source."
          }
        },
        "title": "offer_caps.v1.Cap.Utilization.SourceUtilization",
        "required": [
          "sourceId",
          "numberOfConversions",
          "sumOfRevenue"
        ],
        "additionalProperties": false,
        "description": "Consumption attributable to a single affiliate source."
      },
      "offer_caps.v1.CustomPeriodStarts": {
        "type": "object",
        "properties": {
          "weekly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.CustomPeriodStarts.Weekly"
              }
            ],
            "title": "weekly",
            "description": "(OPTIONAL) Day the weekly periods start on. Defaults to Monday."
          },
          "monthly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.CustomPeriodStarts.Monthly"
              }
            ],
            "title": "monthly",
            "description": "(OPTIONAL) Day the monthly periods start on. Defaults to the first day of the month."
          }
        },
        "title": "offer_caps.v1.CustomPeriodStarts",
        "additionalProperties": false,
        "description": "Days the recurring periods of a cap start on instead of the default ones.\n Which periods the cap enforces follows from its limits."
      },
      "offer_caps.v1.CustomPeriodStarts.Monthly": {
        "type": "object",
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "day"
                ]
              },
              {
                "required": [
                  "lastDay"
                ]
              }
            ]
          }
        ],
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "day": {
                "type": "integer",
                "title": "day",
                "maximum": 28,
                "minimum": 1,
                "description": "Day of the month the period starts on, at the tenant's midnight."
              }
            },
            "title": "day"
          },
          {
            "type": "object",
            "properties": {
              "lastDay": {
                "type": "boolean",
                "title": "last_day",
                "description": "Whether the period starts on the last day of the month, at the tenant's midnight.",
                "const": true
              }
            },
            "title": "last_day"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "day"
                  ]
                },
                {
                  "required": [
                    "lastDay"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "day"
                    ]
                  },
                  {
                    "required": [
                      "lastDay"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "offer_caps.v1.CustomPeriodStarts.Monthly",
        "description": "Start of a monthly period."
      },
      "offer_caps.v1.CustomPeriodStarts.Weekly": {
        "type": "object",
        "properties": {
          "weekday": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.Weekday"
              }
            ],
            "not": {
              "enum": [
                "WEEKDAY_UNSPECIFIED"
              ]
            },
            "title": "weekday",
            "description": "Weekday the period starts on, at the tenant's midnight.\nenum.defined_only = true\n"
          }
        },
        "title": "offer_caps.v1.CustomPeriodStarts.Weekly",
        "required": [
          "weekday"
        ],
        "additionalProperties": false,
        "description": "Start of a weekly period."
      },
      "offer_caps.v1.Limit": {
        "type": "object",
        "properties": {
          "day": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offer_caps.v1.Limit.Day"
              }
            ],
            "title": "day",
            "description": "(OPTIONAL) Daily limit."
          },
          "week": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "week",
            "description": "(OPTIONAL) Value the week's consumption must stay below."
          },
          "month": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "month",
            "description": "(OPTIONAL) Value the month's consumption must stay below."
          }
        },
        "title": "offer_caps.v1.Limit",
        "additionalProperties": false,
        "description": "Limit values of the periods they are enforced over. At least one period must be set.\n The periods a cap enforces follow from the periods set on its own limits, and an individual\n source limit may cover any of them.\nlimit.period.required // at least one period limit must be set\n"
      },
      "offer_caps.v1.Limit.Day": {
        "type": "object",
        "properties": {
          "everyDay": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "every_day",
            "description": "Value the day's consumption must stay below."
          }
        },
        "title": "offer_caps.v1.Limit.Day",
        "required": [
          "everyDay"
        ],
        "additionalProperties": false,
        "description": "Limit enforced over a single day."
      },
      "offer_caps.v1.ListOfferCapsRequest": {
        "type": "object",
        "properties": {
          "offerId": {
            "type": "string",
            "title": "offer_id",
            "format": "uuid",
            "description": "Offer identifier (UUID) whose caps are listed."
          }
        },
        "title": "offer_caps.v1.ListOfferCapsRequest",
        "required": [
          "offerId"
        ],
        "additionalProperties": false,
        "description": "Request to list the conversion caps of an offer."
      },
      "offer_caps.v1.ListOfferCapsResponse": {
        "type": "object",
        "properties": {
          "caps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offer_caps.v1.Cap"
            },
            "title": "caps",
            "description": "Caps configured on the offer."
          }
        },
        "title": "offer_caps.v1.ListOfferCapsResponse",
        "required": [
          "caps"
        ],
        "additionalProperties": false,
        "description": "Response containing the caps of the offer.\n Callers restricted to their own sources see the limit resolved for each of those sources under\n `limits.by_source.individual`, with `limits.by_source.default` left unset."
      },
      "offers.v1.DirectLink": {
        "type": "object",
        "properties": {
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Public-facing direct link identifier used in tracking URLs."
          }
        },
        "title": "offers.v1.DirectLink",
        "required": [
          "publicId"
        ],
        "additionalProperties": false,
        "description": "Direct tracking link details for a landing page."
      },
      "offers.v1.LandingPage": {
        "type": "object",
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "directLink"
                ]
              },
              {
                "required": [
                  "redirectLink"
                ]
              }
            ]
          }
        ],
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "directLink": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/offers.v1.DirectLink"
                  }
                ],
                "title": "direct_link",
                "description": "Set when the landing page uses a direct tracking link."
              }
            },
            "title": "direct_link"
          },
          {
            "type": "object",
            "properties": {
              "redirectLink": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/offers.v1.RedirectLink"
                  }
                ],
                "title": "redirect_link",
                "description": "Set when the landing page uses a redirect tracking link."
              }
            },
            "title": "redirect_link"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "directLink"
                  ]
                },
                {
                  "required": [
                    "redirectLink"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "directLink"
                    ]
                  },
                  {
                    "required": [
                      "redirectLink"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Landing page unique identifier (UUID)."
          },
          "offerId": {
            "type": "string",
            "title": "offer_id",
            "description": "Identifier (UUID) of the offer this landing page belongs to."
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "Destination URL the landing page points to."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Landing page display name."
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.LandingPageStatus"
              }
            ],
            "title": "status",
            "description": "Current status of the landing page (enabled or disabled)."
          }
        },
        "title": "offers.v1.LandingPage",
        "required": [
          "id",
          "offerId",
          "url",
          "name",
          "status"
        ],
        "description": "Landing page paired with its tracking link metadata. The link variant indicates the tracking type."
      },
      "offers.v1.ListLandingPagesRequest": {
        "type": "object",
        "properties": {
          "offerId": {
            "type": "string",
            "title": "offer_id",
            "format": "uuid",
            "description": "Offer identifier (UUID) whose landing pages are listed."
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination",
            "description": "Pagination of the listed landing pages."
          }
        },
        "title": "offers.v1.ListLandingPagesRequest",
        "required": [
          "offerId",
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Request to list landing pages assigned to an offer."
      },
      "offers.v1.ListLandingPagesResponse": {
        "type": "object",
        "properties": {
          "landingPages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.LandingPage"
            },
            "title": "landing_pages",
            "description": "Landing pages assigned to the offer."
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination",
            "description": "Pagination details of the listed offers."
          }
        },
        "title": "offers.v1.ListLandingPagesResponse",
        "required": [
          "landingPages",
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Response containing landing pages of the offer with their tracking link metadata."
      },
      "offers.v1.ListOfferCreativesRequest": {
        "type": "object",
        "properties": {
          "offerId": {
            "type": "string",
            "title": "offer_id",
            "format": "uuid",
            "description": "Offer identifier (UUID)."
          }
        },
        "title": "offers.v1.ListOfferCreativesRequest",
        "required": [
          "offerId"
        ],
        "additionalProperties": false
      },
      "offers.v1.ListOfferCreativesResponse": {
        "type": "object",
        "properties": {
          "creatives": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.OfferCreative"
            },
            "title": "creatives",
            "description": "Creatives configured for the offer."
          }
        },
        "title": "offers.v1.ListOfferCreativesResponse",
        "required": [
          "creatives"
        ],
        "additionalProperties": false
      },
      "offers.v1.OfferCreative": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique identifier of the creative (UUID)."
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.CreativeType"
              }
            ],
            "title": "type",
            "description": "Type of the creative."
          },
          "content": {
            "type": "string",
            "title": "content",
            "description": "Creative content (URL, HTML, or text up to 100000 chars)."
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "created_at",
            "description": "Timestamp when the creative was created (UTC)."
          },
          "meta": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offers.v1.OfferCreative.Meta"
              }
            ],
            "title": "meta",
            "description": "Image/file metadata for the creative."
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "name",
            "description": "(OPTIONAL) Human-readable name of the creative (1-255 chars)."
          },
          "note": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "note",
            "description": "(OPTIONAL) Internal note for the creative (1-1000 chars)."
          },
          "visibleInGetLink": {
            "type": "boolean",
            "title": "visible_in_get_link",
            "description": "Whether the creative is exposed in the affiliate \"Get link\" interface."
          }
        },
        "title": "offers.v1.OfferCreative",
        "required": [
          "id",
          "type",
          "content",
          "createdAt",
          "meta",
          "visibleInGetLink"
        ],
        "additionalProperties": false,
        "description": "Single promotional creative (banner, image, HTML) attached to an offer."
      },
      "offers.v1.OfferCreative.Meta": {
        "type": "object",
        "properties": {
          "width": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.UInt32Value"
              }
            ],
            "title": "width",
            "description": "(OPTIONAL) Width in pixels, if applicable."
          },
          "height": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.UInt32Value"
              }
            ],
            "title": "height",
            "description": "(OPTIONAL) Height in pixels, if applicable."
          },
          "size": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.UInt32Value"
              }
            ],
            "title": "size",
            "description": "(OPTIONAL) File size in bytes, if applicable."
          }
        },
        "title": "offers.v1.OfferCreative.Meta",
        "additionalProperties": false,
        "description": "Image/file metadata for the creative."
      },
      "offers.v1.RedirectLink": {
        "type": "object",
        "properties": {
          "targeting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offers.v1.Targeting"
              }
            ],
            "title": "targeting",
            "description": "Targeting rules applied to this redirect landing page."
          }
        },
        "title": "offers.v1.RedirectLink",
        "required": [
          "targeting"
        ],
        "additionalProperties": false,
        "description": "Redirect tracking link details for a landing page."
      },
      "offers.v1.Targeting": {
        "type": "object",
        "properties": {
          "locations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/locations.v1.Locations"
              }
            ],
            "title": "locations",
            "description": "Geographic locations configured for targeting."
          },
          "languages": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "(OPTIONAL) "
            },
            "title": "languages",
            "description": "(OPTIONAL) ISO 639-1 two-letter language codes configured for targeting."
          },
          "devices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.Device"
            },
            "title": "devices",
            "description": "(OPTIONAL) Device types configured for targeting."
          },
          "operatingSystems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OperatingSystem"
            },
            "title": "operating_systems",
            "description": "(OPTIONAL) Operating systems configured for targeting."
          }
        },
        "title": "offers.v1.Targeting",
        "required": [
          "locations"
        ],
        "additionalProperties": false,
        "description": "Targeting criteria returned for a redirect landing page."
      },
      "payment_methods.v1.CreatePaymentMethodRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "account_id",
            "format": "uuid",
            "description": "Account ID to associate the payment method with."
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
              }
            ],
            "not": {
              "enum": [
                "PAYMENT_METHOD_TYPE_UNSPECIFIED"
              ]
            },
            "title": "type",
            "description": "Payment method type."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency for the payment method. Uses ISO 4217 format."
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
              }
            ],
            "title": "data",
            "description": "Payment method data."
          }
        },
        "title": "payment_methods.v1.CreatePaymentMethodRequest",
        "required": [
          "currency",
          "data"
        ],
        "additionalProperties": false,
        "description": "Create a new payment method."
      },
      "payment_methods.v1.CreatePaymentMethodResponse": {
        "type": "object",
        "properties": {
          "paymentMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
              }
            ],
            "title": "payment_method"
          }
        },
        "title": "payment_methods.v1.CreatePaymentMethodResponse",
        "additionalProperties": false,
        "description": "Feedback for creation of the payment method."
      },
      "payment_methods.v1.PaymentMethod": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Identifier of the payment method."
          },
          "accountId": {
            "type": "string",
            "title": "account_id",
            "description": "Account associated with the payment method."
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
              }
            ],
            "title": "type",
            "description": "Payment method type."
          },
          "currencyCode": {
            "type": "string",
            "title": "currency_code",
            "description": "Currency used in the payment method. Uses ISO 4217 format."
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
              }
            ],
            "title": "data",
            "description": "Detailed data of the selected payment method. See below for more details."
          },
          "default": {
            "type": "boolean",
            "title": "default",
            "description": "Designates if payment method is set as default. Only one payment method can have this set as true."
          }
        },
        "title": "payment_methods.v1.PaymentMethod",
        "additionalProperties": false,
        "description": "Payment method detail"
      },
      "payment_methods.v1.PaymentMethodData": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "bankTransfer": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.BankTransfer"
                  }
                ],
                "title": "bank_transfer"
              }
            },
            "title": "bank_transfer"
          },
          {
            "type": "object",
            "properties": {
              "bitcoin": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Bitcoin"
                  }
                ],
                "title": "bitcoin"
              }
            },
            "title": "bitcoin"
          },
          {
            "type": "object",
            "properties": {
              "creditStore": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.CreditStore"
                  }
                ],
                "title": "credit_store"
              }
            },
            "title": "credit_store"
          },
          {
            "type": "object",
            "properties": {
              "custom": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Custom"
                  }
                ],
                "title": "custom"
              }
            },
            "title": "custom"
          },
          {
            "type": "object",
            "properties": {
              "directDeposit": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.DirectDeposit"
                  }
                ],
                "title": "direct_deposit"
              }
            },
            "title": "direct_deposit"
          },
          {
            "type": "object",
            "properties": {
              "ether": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Ether"
                  }
                ],
                "title": "ether"
              }
            },
            "title": "ether"
          },
          {
            "type": "object",
            "properties": {
              "giftCard": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.GiftCard"
                  }
                ],
                "title": "gift_card"
              }
            },
            "title": "gift_card"
          },
          {
            "type": "object",
            "properties": {
              "mercadoPago": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.MercadoPago"
                  }
                ],
                "title": "mercado_pago"
              }
            },
            "title": "mercado_pago"
          },
          {
            "type": "object",
            "properties": {
              "neteller": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Neteller"
                  }
                ],
                "title": "neteller"
              }
            },
            "title": "neteller"
          },
          {
            "type": "object",
            "properties": {
              "paxum": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Paxum"
                  }
                ],
                "title": "paxum"
              }
            },
            "title": "paxum"
          },
          {
            "type": "object",
            "properties": {
              "payPal": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.PayPal"
                  }
                ],
                "title": "pay_pal"
              }
            },
            "title": "pay_pal"
          },
          {
            "type": "object",
            "properties": {
              "payoneer": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Payoneer"
                  }
                ],
                "title": "payoneer"
              }
            },
            "title": "payoneer"
          },
          {
            "type": "object",
            "properties": {
              "revolut": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Revolut"
                  }
                ],
                "title": "revolut"
              }
            },
            "title": "revolut"
          },
          {
            "type": "object",
            "properties": {
              "sepa": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Sepa"
                  }
                ],
                "title": "sepa"
              }
            },
            "title": "sepa"
          },
          {
            "type": "object",
            "properties": {
              "skrill": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Skrill"
                  }
                ],
                "title": "skrill"
              }
            },
            "title": "skrill"
          },
          {
            "type": "object",
            "properties": {
              "stripeConnect": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.StripeConnect"
                  }
                ],
                "title": "stripe_connect"
              }
            },
            "title": "stripe_connect"
          },
          {
            "type": "object",
            "properties": {
              "tipalti": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Tipalti"
                  }
                ],
                "title": "tipalti"
              }
            },
            "title": "tipalti"
          },
          {
            "type": "object",
            "properties": {
              "usdc": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Usdc"
                  }
                ],
                "title": "usdc"
              }
            },
            "title": "usdc"
          },
          {
            "type": "object",
            "properties": {
              "usdt": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Usdt"
                  }
                ],
                "title": "usdt"
              }
            },
            "title": "usdt"
          },
          {
            "type": "object",
            "properties": {
              "wise": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Wise"
                  }
                ],
                "title": "wise"
              }
            },
            "title": "wise"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "bankTransfer"
                  ]
                },
                {
                  "required": [
                    "bitcoin"
                  ]
                },
                {
                  "required": [
                    "creditStore"
                  ]
                },
                {
                  "required": [
                    "custom"
                  ]
                },
                {
                  "required": [
                    "directDeposit"
                  ]
                },
                {
                  "required": [
                    "ether"
                  ]
                },
                {
                  "required": [
                    "giftCard"
                  ]
                },
                {
                  "required": [
                    "mercadoPago"
                  ]
                },
                {
                  "required": [
                    "neteller"
                  ]
                },
                {
                  "required": [
                    "paxum"
                  ]
                },
                {
                  "required": [
                    "payPal"
                  ]
                },
                {
                  "required": [
                    "payoneer"
                  ]
                },
                {
                  "required": [
                    "revolut"
                  ]
                },
                {
                  "required": [
                    "sepa"
                  ]
                },
                {
                  "required": [
                    "skrill"
                  ]
                },
                {
                  "required": [
                    "stripeConnect"
                  ]
                },
                {
                  "required": [
                    "tipalti"
                  ]
                },
                {
                  "required": [
                    "usdc"
                  ]
                },
                {
                  "required": [
                    "usdt"
                  ]
                },
                {
                  "required": [
                    "wise"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "bankTransfer"
                    ]
                  },
                  {
                    "required": [
                      "bitcoin"
                    ]
                  },
                  {
                    "required": [
                      "creditStore"
                    ]
                  },
                  {
                    "required": [
                      "custom"
                    ]
                  },
                  {
                    "required": [
                      "directDeposit"
                    ]
                  },
                  {
                    "required": [
                      "ether"
                    ]
                  },
                  {
                    "required": [
                      "giftCard"
                    ]
                  },
                  {
                    "required": [
                      "mercadoPago"
                    ]
                  },
                  {
                    "required": [
                      "neteller"
                    ]
                  },
                  {
                    "required": [
                      "paxum"
                    ]
                  },
                  {
                    "required": [
                      "payPal"
                    ]
                  },
                  {
                    "required": [
                      "payoneer"
                    ]
                  },
                  {
                    "required": [
                      "revolut"
                    ]
                  },
                  {
                    "required": [
                      "sepa"
                    ]
                  },
                  {
                    "required": [
                      "skrill"
                    ]
                  },
                  {
                    "required": [
                      "stripeConnect"
                    ]
                  },
                  {
                    "required": [
                      "tipalti"
                    ]
                  },
                  {
                    "required": [
                      "usdc"
                    ]
                  },
                  {
                    "required": [
                      "usdt"
                    ]
                  },
                  {
                    "required": [
                      "wise"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "payment_methods.v1.PaymentMethodData",
        "description": "Payment methods details"
      },
      "payment_methods.v1.PaymentMethodData.BankTransfer": {
        "type": "object",
        "properties": {
          "bankAccountNumber": {
            "type": "string",
            "title": "bank_account_number",
            "maxLength": 255,
            "minLength": 1,
            "description": "Bank account number"
          },
          "bankAddress": {
            "type": "string",
            "title": "bank_address",
            "maxLength": 255,
            "minLength": 1,
            "description": "Address of the bank"
          },
          "bankName": {
            "type": "string",
            "title": "bank_name",
            "maxLength": 255,
            "minLength": 1,
            "description": "Name of the bank"
          },
          "swift": {
            "type": "string",
            "title": "swift",
            "maxLength": 255,
            "description": "SWIFT code for the account"
          },
          "aba": {
            "type": "string",
            "title": "aba",
            "maxLength": 255,
            "description": "ABA number (for U.S. transfers)"
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.BankTransfer",
        "additionalProperties": false,
        "description": "Bank transfer"
      },
      "payment_methods.v1.PaymentMethodData.Bitcoin": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "type": "string",
            "title": "crypto_wallet_address",
            "maxLength": 255,
            "minLength": 1,
            "description": "Address of the crypto wallet."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Bitcoin",
        "additionalProperties": false,
        "description": "Bitcoin"
      },
      "payment_methods.v1.PaymentMethodData.CreditStore": {
        "type": "object",
        "properties": {
          "identification": {
            "type": "string",
            "title": "identification",
            "maxLength": 255,
            "minLength": 1,
            "description": "Credit store code."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.CreditStore",
        "additionalProperties": false,
        "description": "Credit store"
      },
      "payment_methods.v1.PaymentMethodData.Custom": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "maxLength": 255,
            "minLength": 1,
            "description": "Custom payment method name."
          },
          "identification": {
            "type": "string",
            "title": "identification",
            "maxLength": 255,
            "minLength": 1,
            "description": "Custom payment method identification."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Custom",
        "additionalProperties": false,
        "description": "Custom payment method"
      },
      "payment_methods.v1.PaymentMethodData.DirectDeposit": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "type": "string",
            "title": "account_number",
            "maxLength": 255,
            "minLength": 1,
            "description": "Bank account number."
          },
          "accountHolder": {
            "type": "string",
            "title": "account_holder",
            "maxLength": 255,
            "minLength": 1,
            "description": "Holder of the bank account."
          },
          "bankName": {
            "type": "string",
            "title": "bank_name",
            "maxLength": 255,
            "minLength": 1,
            "description": "Name of the bank."
          },
          "bankRoutingNumber": {
            "type": "string",
            "title": "bank_routing_number",
            "maxLength": 255,
            "minLength": 1,
            "description": "ABA/bank routing number of the bank."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.DirectDeposit",
        "additionalProperties": false,
        "description": "Direct bank deposit"
      },
      "payment_methods.v1.PaymentMethodData.Ether": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "type": "string",
            "title": "crypto_wallet_address",
            "maxLength": 255,
            "minLength": 1,
            "description": "Crypto wallet address."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Ether",
        "additionalProperties": false,
        "description": "Ether"
      },
      "payment_methods.v1.PaymentMethodData.GiftCard": {
        "type": "object",
        "properties": {
          "identification": {
            "type": "string",
            "title": "identification",
            "maxLength": 255,
            "minLength": 1,
            "description": "Gift card code."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.GiftCard",
        "additionalProperties": false,
        "description": "Gift card"
      },
      "payment_methods.v1.PaymentMethodData.MercadoPago": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "firstName": {
            "type": "string",
            "title": "first_name",
            "maxLength": 255,
            "minLength": 1,
            "description": "First name."
          },
          "lastName": {
            "type": "string",
            "title": "last_name",
            "maxLength": 255,
            "minLength": 1,
            "description": "Last name."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.MercadoPago",
        "additionalProperties": false,
        "description": "Mercado Pago."
      },
      "payment_methods.v1.PaymentMethodData.Neteller": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Neteller",
        "additionalProperties": false,
        "description": "Neteller"
      },
      "payment_methods.v1.PaymentMethodData.Paxum": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Paxum",
        "additionalProperties": false,
        "description": "Paxum"
      },
      "payment_methods.v1.PaymentMethodData.PayPal": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.PayPal",
        "additionalProperties": false,
        "description": "PayPal"
      },
      "payment_methods.v1.PaymentMethodData.Payoneer": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "(OPTIONAL) Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Payoneer",
        "required": [
          "email"
        ],
        "additionalProperties": false,
        "description": "Payoneer"
      },
      "payment_methods.v1.PaymentMethodData.Revolut": {
        "type": "object",
        "properties": {
          "revolutTag": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "revolut_tag",
            "maxLength": 100,
            "description": "(OPTIONAL) Revolut tag."
          },
          "phoneNumber": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "phone_number",
            "maxLength": 20,
            "description": "(OPTIONAL) Phone number associated with the Revolut account."
          },
          "email": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "email",
            "format": "email",
            "description": "(OPTIONAL) Connected email address."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Revolut",
        "additionalProperties": false,
        "description": "Revolut\nat_least_one_identifier // Revolut payment method needs at least one identifier filled.\n"
      },
      "payment_methods.v1.PaymentMethodData.Sepa": {
        "type": "object",
        "properties": {
          "iban": {
            "type": "string",
            "title": "iban",
            "maxLength": 255,
            "minLength": 1,
            "description": "IBAN of the account."
          },
          "beneficiaryName": {
            "type": "string",
            "title": "beneficiary_name",
            "maxLength": 255,
            "description": "Name of the beneficiary."
          },
          "bic": {
            "type": "string",
            "title": "bic",
            "maxLength": 255,
            "description": "BIC/SWIFT of the banking institution."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Sepa",
        "additionalProperties": false,
        "description": "SEPA"
      },
      "payment_methods.v1.PaymentMethodData.Skrill": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Skrill",
        "additionalProperties": false,
        "description": "Skrill"
      },
      "payment_methods.v1.PaymentMethodData.StripeConnect": {
        "type": "object",
        "properties": {
          "connectedAccountId": {
            "type": "string",
            "title": "connected_account_id",
            "maxLength": 255,
            "minLength": 1,
            "description": "ID of the connected account."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.StripeConnect",
        "additionalProperties": false,
        "description": "Stripe Connect"
      },
      "payment_methods.v1.PaymentMethodData.Tipalti": {
        "type": "object",
        "properties": {
          "payeeId": {
            "type": "string",
            "title": "payee_id",
            "maxLength": 255,
            "minLength": 1,
            "description": "ID of the payee."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Tipalti",
        "additionalProperties": false,
        "description": "Tipalti"
      },
      "payment_methods.v1.PaymentMethodData.Usdc": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "type": "string",
            "title": "crypto_wallet_address",
            "maxLength": 255,
            "minLength": 1,
            "description": "Crypto wallet address."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Usdc",
        "additionalProperties": false,
        "description": "USDC"
      },
      "payment_methods.v1.PaymentMethodData.Usdt": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "type": "string",
            "title": "crypto_wallet_address",
            "maxLength": 255,
            "minLength": 1,
            "description": "Crypto wallet address."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Usdt",
        "additionalProperties": false,
        "description": "USDT"
      },
      "payment_methods.v1.PaymentMethodData.Wise": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "email",
            "format": "email",
            "description": "Registered email."
          },
          "note": {
            "type": "string",
            "title": "note",
            "maxLength": 255,
            "description": "Internal note."
          }
        },
        "title": "payment_methods.v1.PaymentMethodData.Wise",
        "additionalProperties": false,
        "description": "Wise"
      },
      "payment_methods.v1.PaymentMethodType": {
        "type": "string",
        "title": "payment_methods.v1.PaymentMethodType",
        "enum": [
          "PAYMENT_METHOD_TYPE_UNSPECIFIED",
          "PAYMENT_METHOD_TYPE_BANK_TRANSFER",
          "PAYMENT_METHOD_TYPE_BITCOIN",
          "PAYMENT_METHOD_TYPE_CREDIT_STORE",
          "PAYMENT_METHOD_TYPE_CUSTOM",
          "PAYMENT_METHOD_TYPE_DIRECT_DEPOSIT",
          "PAYMENT_METHOD_TYPE_ETHER",
          "PAYMENT_METHOD_TYPE_GIFT_CARD",
          "PAYMENT_METHOD_TYPE_MERCADO_PAGO",
          "PAYMENT_METHOD_TYPE_NETELLER",
          "PAYMENT_METHOD_TYPE_PAXUM",
          "PAYMENT_METHOD_TYPE_PAY_PAL",
          "PAYMENT_METHOD_TYPE_PAYONEER",
          "PAYMENT_METHOD_TYPE_REVOLUT",
          "PAYMENT_METHOD_TYPE_SEPA",
          "PAYMENT_METHOD_TYPE_SKRILL",
          "PAYMENT_METHOD_TYPE_STRIPE_CONNECT",
          "PAYMENT_METHOD_TYPE_TIPALTI",
          "PAYMENT_METHOD_TYPE_USDC",
          "PAYMENT_METHOD_TYPE_USDT",
          "PAYMENT_METHOD_TYPE_WISE"
        ]
      },
      "payment_methods.v1.UpdatePaymentMethodRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "format": "uuid",
            "description": "Payment method identification."
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
              }
            ],
            "not": {
              "enum": [
                "PAYMENT_METHOD_TYPE_UNSPECIFIED"
              ]
            },
            "title": "type",
            "description": "Type of the payment method."
          },
          "currency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Currency"
              }
            ],
            "title": "currency",
            "description": "Currency for the payment method. Uses ISO 4217 format."
          },
          "data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
              }
            ],
            "title": "data",
            "description": "Payment method data."
          }
        },
        "title": "payment_methods.v1.UpdatePaymentMethodRequest",
        "required": [
          "currency",
          "data"
        ],
        "additionalProperties": false,
        "description": "Update existing payment method."
      },
      "payment_methods.v1.UpdatePaymentMethodResponse": {
        "type": "object",
        "properties": {
          "paymentMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
              }
            ],
            "title": "payment_method"
          }
        },
        "title": "payment_methods.v1.UpdatePaymentMethodResponse",
        "additionalProperties": false,
        "description": "Feedback for the update of the payment method."
      },
      "settings.v1.BillingDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "title": "name",
            "description": "Legal name."
          },
          "addressLine1": {
            "type": "string",
            "title": "address_line1",
            "description": "Address."
          },
          "city": {
            "type": "string",
            "title": "city",
            "description": "City."
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code"
          },
          "postalCode": {
            "type": "string",
            "title": "postal_code",
            "description": "Postal code."
          },
          "addressLine2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "address_line2",
            "description": "Additional address details."
          },
          "invoicingEmail": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "invoicing_email",
            "description": "Invoicing email."
          },
          "vat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "vat",
            "description": "VAT number."
          }
        },
        "title": "settings.v1.BillingDetail",
        "additionalProperties": false,
        "description": "Billing details set for tenant (i.e. your company billing details)."
      },
      "stripe_connect.v1.TransferErrorCode": {
        "type": "string",
        "title": "stripe_connect.v1.TransferErrorCode",
        "enum": [
          "TRANSFER_ERROR_CODE_UNSPECIFIED",
          "TRANSFER_ERROR_CODE_CONNECTED_ACCOUNT_ID_MISSING",
          "TRANSFER_ERROR_CODE_CURRENCY_NOT_SUPPORTED"
        ]
      },
      "tags.v1.ListTagsRequest": {
        "type": "object",
        "title": "tags.v1.ListTagsRequest",
        "additionalProperties": false,
        "description": "List existing tags."
      },
      "tags.v1.ListTagsResponse": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tags.v1.Tag"
            },
            "title": "tags"
          }
        },
        "title": "tags.v1.ListTagsResponse",
        "required": [
          "tags"
        ],
        "additionalProperties": false,
        "description": "List of existing tags."
      },
      "tags.v1.Tag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Unique identifier of the tag."
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Name of the tag."
          },
          "hexColorCode": {
            "type": "string",
            "title": "hex_color_code",
            "description": "Color of the tag, uses HTML hex color code."
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.TagScope"
            },
            "title": "scopes",
            "description": "Scopes the tag applies to."
          }
        },
        "title": "tags.v1.Tag",
        "required": [
          "id",
          "name",
          "hexColorCode",
          "scopes"
        ],
        "additionalProperties": false,
        "description": "Tag"
      },
      "types.v1.Currency": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Z]*$",
            "description": "The three-letter currency code defined in ISO 4217."
          }
        },
        "title": "types.v1.Currency",
        "additionalProperties": false
      },
      "types.v1.CustomQuestionAnswer": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "title": "question",
            "minLength": 1
          },
          "answer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer"
              }
            ],
            "title": "answer"
          }
        },
        "title": "types.v1.CustomQuestionAnswer",
        "required": [
          "question",
          "answer"
        ],
        "additionalProperties": false
      },
      "types.v1.CustomQuestionAnswer.Answer": {
        "type": "object",
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "text"
                ]
              },
              {
                "required": [
                  "checkbox"
                ]
              },
              {
                "required": [
                  "options"
                ]
              },
              {
                "required": [
                  "fileUpload"
                ]
              }
            ]
          }
        ],
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "checkbox": {
                "type": "boolean",
                "title": "checkbox"
              }
            },
            "title": "checkbox"
          },
          {
            "type": "object",
            "properties": {
              "fileUpload": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer.FileUpload"
                  }
                ],
                "title": "file_upload"
              }
            },
            "title": "file_upload"
          },
          {
            "type": "object",
            "properties": {
              "options": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer.Options"
                  }
                ],
                "title": "options"
              }
            },
            "title": "options"
          },
          {
            "type": "object",
            "properties": {
              "text": {
                "type": "string",
                "title": "text",
                "maxLength": 1000
              }
            },
            "title": "text"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "checkbox"
                  ]
                },
                {
                  "required": [
                    "fileUpload"
                  ]
                },
                {
                  "required": [
                    "options"
                  ]
                },
                {
                  "required": [
                    "text"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "checkbox"
                    ]
                  },
                  {
                    "required": [
                      "fileUpload"
                    ]
                  },
                  {
                    "required": [
                      "options"
                    ]
                  },
                  {
                    "required": [
                      "text"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "types.v1.CustomQuestionAnswer.Answer"
      },
      "types.v1.CustomQuestionAnswer.Answer.FileUpload": {
        "type": "object",
        "properties": {
          "url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "url",
            "format": "uri",
            "description": "(OPTIONAL) "
          }
        },
        "title": "types.v1.CustomQuestionAnswer.Answer.FileUpload",
        "additionalProperties": false
      },
      "types.v1.CustomQuestionAnswer.Answer.Options": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "values",
            "maxItems": 20
          }
        },
        "title": "types.v1.CustomQuestionAnswer.Answer.Options",
        "required": [
          "values"
        ],
        "additionalProperties": false
      },
      "types.v1.Decimal": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "title": "value",
            "pattern": "^-?\\d+(\\.\\d+)?$"
          }
        },
        "title": "types.v1.Decimal",
        "additionalProperties": false
      },
      "types.v1.Fallback": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "customUrl": {
                "type": "string",
                "title": "custom_url",
                "description": "(OPTIONAL) "
              }
            },
            "title": "custom_url"
          },
          {
            "type": "object",
            "properties": {
              "offerId": {
                "type": "string",
                "title": "offer_id",
                "description": "(OPTIONAL) "
              }
            },
            "title": "offer_id"
          },
          {
            "type": "object",
            "properties": {
              "smartLinkId": {
                "type": "string",
                "title": "smart_link_id",
                "description": "(OPTIONAL) "
              }
            },
            "title": "smart_link_id"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "customUrl"
                  ]
                },
                {
                  "required": [
                    "offerId"
                  ]
                },
                {
                  "required": [
                    "smartLinkId"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "customUrl"
                    ]
                  },
                  {
                    "required": [
                      "offerId"
                    ]
                  },
                  {
                    "required": [
                      "smartLinkId"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "types.v1.Fallback"
      },
      "types.v1.FraudSuspicion": {
        "type": "object",
        "properties": {
          "isSuspected": {
            "type": "boolean",
            "title": "is_suspected"
          },
          "causes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.FraudDetectionRule"
            },
            "title": "causes"
          }
        },
        "title": "types.v1.FraudSuspicion",
        "required": [
          "isSuspected",
          "causes"
        ],
        "additionalProperties": false
      },
      "types.v1.Messenger": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "signal": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.Messenger.Signal"
                  }
                ],
                "title": "signal"
              }
            },
            "title": "signal"
          },
          {
            "type": "object",
            "properties": {
              "skype": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.Messenger.Skype"
                  }
                ],
                "title": "skype"
              }
            },
            "title": "skype"
          },
          {
            "type": "object",
            "properties": {
              "telegram": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.Messenger.Telegram"
                  }
                ],
                "title": "telegram"
              }
            },
            "title": "telegram"
          },
          {
            "type": "object",
            "properties": {
              "whatsapp": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/types.v1.Messenger.Whatsapp"
                  }
                ],
                "title": "whatsapp"
              }
            },
            "title": "whatsapp"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "signal"
                  ]
                },
                {
                  "required": [
                    "skype"
                  ]
                },
                {
                  "required": [
                    "telegram"
                  ]
                },
                {
                  "required": [
                    "whatsapp"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "signal"
                    ]
                  },
                  {
                    "required": [
                      "skype"
                    ]
                  },
                  {
                    "required": [
                      "telegram"
                    ]
                  },
                  {
                    "required": [
                      "whatsapp"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "title": "types.v1.Messenger"
      },
      "types.v1.Messenger.Signal": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "title": "phone_number",
            "maxLength": 20,
            "minLength": 1
          }
        },
        "title": "types.v1.Messenger.Signal",
        "additionalProperties": false
      },
      "types.v1.Messenger.Skype": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "title": "username",
            "maxLength": 100,
            "minLength": 1
          }
        },
        "title": "types.v1.Messenger.Skype",
        "additionalProperties": false
      },
      "types.v1.Messenger.Telegram": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "title": "phone_number",
            "maxLength": 20,
            "minLength": 1
          }
        },
        "title": "types.v1.Messenger.Telegram",
        "additionalProperties": false
      },
      "types.v1.Messenger.Whatsapp": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string",
            "title": "phone_number",
            "maxLength": 20,
            "minLength": 1
          }
        },
        "title": "types.v1.Messenger.Whatsapp",
        "additionalProperties": false
      },
      "types.v1.Pagination": {
        "type": "object",
        "properties": {
          "totalCount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.UInt32Value"
              }
            ],
            "title": "total_count",
            "description": "Total number of items matching the request across all pages. Unset when the total is not computed."
          },
          "hasMore": {
            "type": "boolean",
            "title": "has_more",
            "description": "Whether more items are available beyond the current page."
          }
        },
        "title": "types.v1.Pagination",
        "additionalProperties": false,
        "description": "Pagination details returned with a list response."
      },
      "types.v1.PaginationParams": {
        "type": "object",
        "properties": {
          "limit": {
            "exclusiveMinimum": 0,
            "type": "integer",
            "title": "limit",
            "maximum": 500,
            "description": "Maximum number of items to return (1-500)."
          },
          "offset": {
            "type": "integer",
            "title": "offset",
            "description": "Number of items to skip from the start of the result set."
          }
        },
        "title": "types.v1.PaginationParams",
        "additionalProperties": false,
        "description": "Pagination for a list request."
      },
      "types.v1.TimeRange": {
        "type": "object",
        "properties": {
          "from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "from"
          },
          "to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "to"
          }
        },
        "title": "types.v1.TimeRange",
        "required": [
          "from",
          "to"
        ],
        "additionalProperties": false,
        "description": "from.before.to // from must be before to\n"
      },
      "clicks.v1.AdClickId": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.AdClickIdType"
              }
            ],
            "not": {
              "enum": [
                "AD_CLICK_ID_TYPE_UNSPECIFIED"
              ]
            },
            "title": "type",
            "description": "Click ID parameter name (e.g. gclid, fbclid, ttclid)."
          },
          "value": {
            "type": "string",
            "title": "value",
            "maxLength": 255,
            "minLength": 1,
            "description": "Value of the click ID query parameter."
          }
        },
        "title": "clicks.v1.AdClickId",
        "required": [
          "type",
          "value"
        ],
        "additionalProperties": false,
        "description": "Identifies a click originating from a paid advertising platform (e.g. Google Ads, Meta Ads, TikTok Ads)."
      },
      "enums.v1.AdClickIdType": {
        "type": "string",
        "title": "enums.v1.AdClickIdType",
        "enum": [
          "AD_CLICK_ID_TYPE_UNSPECIFIED",
          "AD_CLICK_ID_TYPE_FBCLID",
          "AD_CLICK_ID_TYPE_GCLID",
          "AD_CLICK_ID_TYPE_TTCLID"
        ]
      },
      "enums.v1.AnuraScore": {
        "type": "string",
        "title": "enums.v1.AnuraScore",
        "enum": [
          "ANURA_SCORE_UNSPECIFIED",
          "ANURA_SCORE_GOOD",
          "ANURA_SCORE_WARNING",
          "ANURA_SCORE_BAD"
        ]
      },
      "enums.v1.ClickStatus": {
        "type": "string",
        "title": "enums.v1.ClickStatus",
        "enum": [
          "CLICK_STATUS_UNSPECIFIED",
          "CLICK_STATUS_OK",
          "CLICK_STATUS_NOT_ALLOWED",
          "CLICK_STATUS_BLOCKED"
        ]
      },
      "enums.v1.ClickType": {
        "type": "string",
        "title": "enums.v1.ClickType",
        "enum": [
          "CLICK_TYPE_UNSPECIFIED",
          "CLICK_TYPE_DIRECT",
          "CLICK_TYPE_REDIRECT",
          "CLICK_TYPE_REDIRECT_LANDING_PAGE",
          "CLICK_TYPE_REDIRECT_LANDING_PAGE_GOOGLE_DOMAIN",
          "CLICK_TYPE_SMART_LINK"
        ]
      },
      "enums.v1.ReportColumn": {
        "type": "string",
        "title": "enums.v1.ReportColumn",
        "enum": [
          "REPORT_COLUMN_UNSPECIFIED",
          "REPORT_COLUMN_ADVERTISER_PROFIT",
          "REPORT_COLUMN_AVERAGE_CLICK_CONVERSION_AMOUNT",
          "REPORT_COLUMN_AVERAGE_CLICK_COST",
          "REPORT_COLUMN_AVERAGE_CLICK_REVENUE",
          "REPORT_COLUMN_AVERAGE_COMMISSION_AMOUNT",
          "REPORT_COLUMN_AVERAGE_CONVERSION_AMOUNT",
          "REPORT_COLUMN_AVERAGE_COST",
          "REPORT_COLUMN_AVERAGE_REVENUE",
          "REPORT_COLUMN_CLICK_COUNT",
          "REPORT_COLUMN_CLICK_FRAUD_RATE",
          "REPORT_COLUMN_COMMISSION_COUNT",
          "REPORT_COLUMN_CONVERSION_AMOUNT_PER_CLICK",
          "REPORT_COLUMN_CONVERSION_COUNT",
          "REPORT_COLUMN_CONVERSION_FRAUD_RATE",
          "REPORT_COLUMN_CONVERSION_PER_CLICK_RATE",
          "REPORT_COLUMN_COUPON_COUNT",
          "REPORT_COLUMN_COST_PER_CLICK",
          "REPORT_COLUMN_GROSS_CLICK_COUNT",
          "REPORT_COLUMN_PROFIT",
          "REPORT_COLUMN_REVENUE_PER_CLICK",
          "REPORT_COLUMN_TOTAL_CLICK_CONVERSION_AMOUNT",
          "REPORT_COLUMN_TOTAL_CLICK_COST",
          "REPORT_COLUMN_TOTAL_CLICK_REVENUE",
          "REPORT_COLUMN_TOTAL_COMMISSION_AMOUNT",
          "REPORT_COLUMN_TOTAL_CONVERSION_AMOUNT",
          "REPORT_COLUMN_TOTAL_COST",
          "REPORT_COLUMN_TOTAL_REVENUE"
        ]
      },
      "enums.v1.ReportGrouping": {
        "type": "string",
        "title": "enums.v1.ReportGrouping",
        "enum": [
          "REPORT_GROUPING_UNSPECIFIED",
          "REPORT_GROUPING_ACCOUNT",
          "REPORT_GROUPING_ADV_S1",
          "REPORT_GROUPING_ADV_S2",
          "REPORT_GROUPING_ADV_S3",
          "REPORT_GROUPING_ADV_S4",
          "REPORT_GROUPING_ADV_S5",
          "REPORT_GROUPING_AFF_S1",
          "REPORT_GROUPING_AFF_S2",
          "REPORT_GROUPING_AFF_S3",
          "REPORT_GROUPING_AFF_S4",
          "REPORT_GROUPING_AFF_S5",
          "REPORT_GROUPING_AFFILIATE_MANAGER_ACCOUNT",
          "REPORT_GROUPING_CATEGORY",
          "REPORT_GROUPING_COUNTRY_CODE",
          "REPORT_GROUPING_COUPON",
          "REPORT_GROUPING_DAY",
          "REPORT_GROUPING_HOUR",
          "REPORT_GROUPING_LANDING_PAGE",
          "REPORT_GROUPING_MONTH",
          "REPORT_GROUPING_OFFER",
          "REPORT_GROUPING_REVENUE_ORIGIN",
          "REPORT_GROUPING_SMART_LINK",
          "REPORT_GROUPING_SOURCE",
          "REPORT_GROUPING_TIER",
          "REPORT_GROUPING_WEEK",
          "REPORT_GROUPING_YEAR"
        ]
      },
      "google.protobuf.BoolValue": {
        "type": "boolean",
        "description": "A boolean value; `null` is also accepted."
      },
      "reports.v1.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Internal ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Affiliate name"
          }
        },
        "title": "reports.v1.Account",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Affiliate account"
      },
      "reports.v1.Category": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Category ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Category name"
          }
        },
        "title": "reports.v1.Category",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Category"
      },
      "reports.v1.ClickReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "Time range"
          },
          "cids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "cids",
            "uniqueItems": true,
            "description": "Click ID"
          },
          "externalCids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "external_cids",
            "uniqueItems": true,
            "description": "External CID"
          },
          "countryCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{2}$"
            },
            "title": "country_codes",
            "uniqueItems": true,
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format."
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "source_ids",
            "uniqueItems": true,
            "description": "Traffic source IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "offer_ids",
            "uniqueItems": true,
            "description": "Offer ID"
          },
          "ipAddresses": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "ip_addresses",
            "uniqueItems": true,
            "description": "IP address of click's origin"
          },
          "referrer": {
            "type": "string",
            "title": "referrer",
            "maxLength": 255,
            "description": "Referrer URL"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s1s",
            "uniqueItems": true,
            "description": "Aff s1 custom parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s2s",
            "uniqueItems": true,
            "description": "Aff s2 custom parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s3s",
            "uniqueItems": true,
            "description": "Aff s3 custom parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s4s",
            "uniqueItems": true,
            "description": "Aff s4 custom parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s5s",
            "uniqueItems": true,
            "description": "Aff s5 custom parameter"
          },
          "fraudSuspicion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.FraudSuspicionFilter"
              }
            ],
            "title": "fraud_suspicion",
            "description": "(OPTIONAL) Is click flagged by fraud detection?"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "revenue_origin_ids",
            "uniqueItems": true,
            "description": "Advertisers"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "offer_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "affiliate_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "revenue_origin_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by advertisers (revenue origins) having at least one of these tag IDs"
          },
          "types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ClickType"
            },
            "title": "types",
            "uniqueItems": true,
            "description": "(OPTIONAL) Click origin (type)"
          }
        },
        "title": "reports.v1.ClickReportFilters",
        "required": [
          "timeRange"
        ],
        "additionalProperties": false,
        "description": "Click report filters"
      },
      "reports.v1.ClickReportRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination",
            "description": "Pagination"
          },
          "filters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportFilters"
              }
            ],
            "title": "filters",
            "description": "Filters (see above)"
          }
        },
        "title": "reports.v1.ClickReportRequest",
        "required": [
          "pagination",
          "filters"
        ],
        "additionalProperties": false,
        "description": "Click report request"
      },
      "reports.v1.ClickReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Row"
            },
            "title": "rows"
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination"
          }
        },
        "title": "reports.v1.ClickReportResponse",
        "required": [
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Click report data"
      },
      "reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "External identifier ID"
          },
          "externalCid": {
            "type": "string",
            "title": "external_cid",
            "description": "External click ID"
          },
          "revenueOriginId": {
            "type": "string",
            "title": "revenue_origin_id",
            "description": "Click's revenue origin (or advertiser)"
          }
        },
        "title": "reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier",
        "additionalProperties": false,
        "description": "Click identifiers"
      },
      "reports.v1.ClickReportResponse.CustomParams": {
        "type": "object",
        "properties": {
          "affS1": {
            "type": "string",
            "title": "aff_s1",
            "description": "Aff s1 parameter"
          },
          "affS2": {
            "type": "string",
            "title": "aff_s2",
            "description": "Aff s2 parameter"
          },
          "affS3": {
            "type": "string",
            "title": "aff_s3",
            "description": "Aff s3 parameter"
          },
          "affS4": {
            "type": "string",
            "title": "aff_s4",
            "description": "Aff s4 parameter"
          },
          "affS5": {
            "type": "string",
            "title": "aff_s5",
            "description": "Aff s5 parameter"
          },
          "adClickId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clicks.v1.AdClickId"
              }
            ],
            "title": "ad_click_id",
            "description": "(OPTIONAL) Ad click ID query parameter (e.g. gclid, fbclid, ttclid)."
          }
        },
        "title": "reports.v1.ClickReportResponse.CustomParams",
        "additionalProperties": false,
        "description": "Custom affiliate parameters"
      },
      "reports.v1.ClickReportResponse.Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Offer ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Offer name"
          }
        },
        "title": "reports.v1.ClickReportResponse.Offer",
        "additionalProperties": false,
        "description": "Offer"
      },
      "reports.v1.ClickReportResponse.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Revenue origin/advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Revenue origin/advertiser name"
          }
        },
        "title": "reports.v1.ClickReportResponse.RevenueOrigin",
        "additionalProperties": false,
        "description": "Revenue origin (or advertiser)"
      },
      "reports.v1.ClickReportResponse.Row": {
        "type": "object",
        "properties": {
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "created_at",
            "description": "Timestamp"
          },
          "cid": {
            "type": "string",
            "title": "cid",
            "description": "Click ID"
          },
          "conversionSourceExternalIdentifier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier"
              }
            ],
            "title": "conversion_source_external_identifier",
            "description": "Deprecated: Click external ID"
          },
          "conversionSourceExternalIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier"
            },
            "title": "conversion_source_external_identifiers",
            "description": "Click external IDs"
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code"
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Source"
              }
            ],
            "title": "source",
            "description": "Traffic source"
          },
          "offer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Offer"
              }
            ],
            "title": "offer",
            "description": "Offer"
          },
          "ipAddress": {
            "type": "string",
            "title": "ip_address",
            "description": "IP address"
          },
          "userAgent": {
            "type": "string",
            "title": "user_agent",
            "description": "Browser, OS and device"
          },
          "referrer": {
            "type": "string",
            "title": "referrer",
            "description": "Referrer URL"
          },
          "grossClickCount": {
            "type": "integer",
            "title": "gross_click_count",
            "description": "Gross click count"
          },
          "params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.CustomParams"
              }
            ],
            "title": "params",
            "description": "Custom parameters"
          },
          "fraudSuspicion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.FraudSuspicion"
              }
            ],
            "title": "fraud_suspicion",
            "description": "Is flagged by fraud detection system?"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.ClickStatus"
              }
            ],
            "title": "status",
            "description": "Click status"
          },
          "revenueOrigin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.RevenueOrigin"
              }
            ],
            "title": "revenue_origin",
            "description": "Revenue origin/advertiser"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.ClickType"
              }
            ],
            "title": "type",
            "description": "Click origin (type)"
          },
          "targetingData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData"
              }
            ],
            "title": "targeting_data",
            "description": "(OPTIONAL) Click properties applied during LP targeting"
          },
          "anura": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Anura"
              }
            ],
            "title": "anura",
            "description": "Anura fraud detection"
          },
          "landingPage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.LandingPage"
              }
            ],
            "title": "landing_page",
            "description": "Landing page"
          },
          "sourceExpiredAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "source_expired_at",
            "description": "(OPTIONAL) Expired at timestamp"
          },
          "cookieExpiredAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "cookie_expired_at",
            "description": "(OPTIONAL) Cookie expired at timestamp"
          }
        },
        "title": "reports.v1.ClickReportResponse.Row",
        "required": [
          "landingPage"
        ],
        "additionalProperties": false
      },
      "reports.v1.ClickReportResponse.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Affiliate ID"
          },
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Affiliate public ID"
          }
        },
        "title": "reports.v1.ClickReportResponse.Source",
        "additionalProperties": false,
        "description": "Source affiliate"
      },
      "reports.v1.ClickReportResponse.TargetingData": {
        "type": "object",
        "properties": {
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/locations.v1.Location"
              }
            ],
            "title": "location",
            "description": "(OPTIONAL) "
          },
          "language": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "language",
            "description": "(OPTIONAL) "
          },
          "device": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData.Device"
              }
            ],
            "title": "device",
            "description": "(OPTIONAL) "
          },
          "operatingSystem": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData.OperatingSystem"
              }
            ],
            "title": "operating_system",
            "description": "(OPTIONAL) "
          }
        },
        "title": "reports.v1.ClickReportResponse.TargetingData",
        "additionalProperties": false,
        "description": "Click properties applied during LP targeting"
      },
      "reports.v1.ClickReportResponse.TargetingData.Device": {
        "type": "object",
        "properties": {
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.Device"
              }
            ],
            "title": "value"
          }
        },
        "title": "reports.v1.ClickReportResponse.TargetingData.Device",
        "required": [
          "value"
        ],
        "additionalProperties": false
      },
      "reports.v1.ClickReportResponse.TargetingData.OperatingSystem": {
        "type": "object",
        "properties": {
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.OperatingSystem"
              }
            ],
            "title": "value"
          }
        },
        "title": "reports.v1.ClickReportResponse.TargetingData.OperatingSystem",
        "required": [
          "value"
        ],
        "additionalProperties": false
      },
      "reports.v1.ClientMetricColumns": {
        "type": "object",
        "properties": {
          "codes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "title": "codes",
            "uniqueItems": true,
            "description": "Client metric codes"
          }
        },
        "title": "reports.v1.ClientMetricColumns",
        "required": [
          "codes"
        ],
        "additionalProperties": false,
        "description": "Requested client metric columns"
      },
      "reports.v1.ClientMetrics": {
        "type": "object",
        "properties": {
          "integers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClientMetrics.Integer"
            },
            "title": "integers",
            "description": "Client metrics with integer value"
          },
          "decimals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClientMetrics.Decimal"
            },
            "title": "decimals",
            "description": "Client metrics with decimal value"
          }
        },
        "title": "reports.v1.ClientMetrics",
        "required": [
          "integers",
          "decimals"
        ],
        "additionalProperties": false,
        "description": "Client metrics"
      },
      "reports.v1.ClientMetrics.Decimal": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "Client metric code"
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "value",
            "description": "Client metric value"
          }
        },
        "title": "reports.v1.ClientMetrics.Decimal",
        "required": [
          "code",
          "value"
        ],
        "additionalProperties": false,
        "description": "Client metrics with decimal value"
      },
      "reports.v1.ClientMetrics.Integer": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "Client metric code"
          },
          "value": {
            "type": "string",
            "title": "value",
            "format": "int64",
            "description": "Client metric value"
          }
        },
        "title": "reports.v1.ClientMetrics.Integer",
        "required": [
          "code",
          "value"
        ],
        "additionalProperties": false,
        "description": "Client metrics with integer value"
      },
      "reports.v1.ConversionDrilldown": {
        "type": "object",
        "properties": {
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Conversion types to include in the breakdown"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "(OPTIONAL) Conversion statuses to include in the breakdown"
          }
        },
        "title": "reports.v1.ConversionDrilldown",
        "additionalProperties": false,
        "description": "Conversion drilldown\n\n Specifies which conversion types and statuses to break down separately in the report response.\n When set, each row additionally contains per-type and per-status conversion metrics\n alongside the aggregated totals."
      },
      "reports.v1.ConversionReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "(OPTIONAL) Time range"
          },
          "conversionIds": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "conversion_ids",
            "uniqueItems": true,
            "description": "Conversion IDs"
          },
          "cids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "cids",
            "uniqueItems": true,
            "description": "Click IDs"
          },
          "externalCids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "external_cids",
            "uniqueItems": true,
            "description": "External click IDs"
          },
          "couponCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "coupon_codes",
            "uniqueItems": true,
            "description": "Coupon codes"
          },
          "countryCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{2}$"
            },
            "title": "country_codes",
            "uniqueItems": true,
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format."
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "source_ids",
            "uniqueItems": true,
            "description": "Source IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "offer_ids",
            "uniqueItems": true,
            "description": "Offer IDs"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "Conversion sources"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "Conversion types"
          },
          "conversionSourceTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "title": "conversion_source_types",
            "uniqueItems": true,
            "description": "Traffic source types"
          },
          "externalIds": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "external_ids",
            "uniqueItems": true,
            "description": "External IDs"
          },
          "customerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "customer_ids",
            "uniqueItems": true,
            "description": "Customer IDs"
          },
          "advS1s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "adv_s1s",
            "uniqueItems": true,
            "description": "Custom adv s1 parameter"
          },
          "advS2s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "adv_s2s",
            "uniqueItems": true,
            "description": "Custom adv s2 parameter"
          },
          "advS3s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "adv_s3s",
            "uniqueItems": true,
            "description": "Custom adv s3 parameter"
          },
          "advS4s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "adv_s4s",
            "uniqueItems": true,
            "description": "Custom adv s4 parameter"
          },
          "advS5s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "adv_s5s",
            "uniqueItems": true,
            "description": "Custom adv s5 parameter"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s1s",
            "uniqueItems": true,
            "description": "Custom aff s1 parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s2s",
            "uniqueItems": true,
            "description": "Custom aff s2 parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s3s",
            "uniqueItems": true,
            "description": "Custom aff s3 parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s4s",
            "uniqueItems": true,
            "description": "Custom aff s4 parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "title": "aff_s5s",
            "uniqueItems": true,
            "description": "Custom aff s5 parameter"
          },
          "currencyCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 3,
              "minLength": 3,
              "pattern": "^[A-Z]*$"
            },
            "title": "currency_codes",
            "description": "Currency codes. Uses ISO 4217 format"
          },
          "fraudSuspicion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.FraudSuspicionFilter"
              }
            ],
            "title": "fraud_suspicion",
            "description": "(OPTIONAL) Is flagged by fraud detection?"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "revenue_origin_ids",
            "uniqueItems": true,
            "description": "Advertisers"
          },
          "settlementIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "settlement_ids",
            "uniqueItems": true,
            "description": "Settlement IDs"
          },
          "accountSettlementIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "account_settlement_ids",
            "uniqueItems": true,
            "description": "Self-billing invoice IDs"
          },
          "claimIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "claim_ids",
            "uniqueItems": true,
            "description": "Claim IDs"
          },
          "conversionTypeCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 20,
              "minLength": 1
            },
            "title": "conversion_type_codes",
            "uniqueItems": true,
            "description": "Conversion type codes"
          },
          "qualified": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.BoolValue"
              }
            ],
            "title": "qualified",
            "description": "(OPTIONAL) Filters qualified/unqualified conversions"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "offer_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "affiliate_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "revenue_origin_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by advertisers (revenue origins) having at least one of these tag IDs"
          },
          "isSettled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.BoolValue"
              }
            ],
            "title": "is_settled",
            "description": "(OPTIONAL) Filters settled/unsettled conversions"
          }
        },
        "title": "reports.v1.ConversionReportFilters",
        "additionalProperties": false,
        "description": "Filters for conversion report\ntime_range.or.settlement // either time range or settlement filter need to be present\n"
      },
      "reports.v1.ConversionReportRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.PaginationParams"
              }
            ],
            "title": "pagination",
            "description": "Pagination"
          },
          "filters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportFilters"
              }
            ],
            "title": "filters",
            "description": "Conversion report filters (see above)"
          }
        },
        "title": "reports.v1.ConversionReportRequest",
        "required": [
          "pagination",
          "filters"
        ],
        "additionalProperties": false,
        "description": "Conversion report request"
      },
      "reports.v1.ConversionReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.Row"
            },
            "title": "rows"
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Pagination"
              }
            ],
            "title": "pagination"
          }
        },
        "title": "reports.v1.ConversionReportResponse",
        "required": [
          "pagination"
        ],
        "additionalProperties": false,
        "description": "Conversion report data"
      },
      "reports.v1.ConversionReportResponse.ConversionSourceCustomParams": {
        "type": "object",
        "properties": {
          "affS1": {
            "type": "string",
            "title": "aff_s1",
            "description": "Custom aff s1 parameter"
          },
          "affS2": {
            "type": "string",
            "title": "aff_s2",
            "description": "Custom aff s2 parameter"
          },
          "affS3": {
            "type": "string",
            "title": "aff_s3",
            "description": "Custom aff s3 parameter"
          },
          "affS4": {
            "type": "string",
            "title": "aff_s4",
            "description": "Custom aff s4 parameter"
          },
          "affS5": {
            "type": "string",
            "title": "aff_s5",
            "description": "Custom aff s5 parameter"
          }
        },
        "title": "reports.v1.ConversionReportResponse.ConversionSourceCustomParams",
        "additionalProperties": false,
        "description": "Custom affiliate parameters"
      },
      "reports.v1.ConversionReportResponse.ConversionType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Conversion type ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Conversion type name"
          }
        },
        "title": "reports.v1.ConversionReportResponse.ConversionType",
        "additionalProperties": false,
        "description": "Conversion type"
      },
      "reports.v1.ConversionReportResponse.CustomParams": {
        "type": "object",
        "properties": {
          "advS1": {
            "type": "string",
            "title": "adv_s1",
            "description": "Custom adv s1 parameter"
          },
          "advS2": {
            "type": "string",
            "title": "adv_s2",
            "description": "Custom adv s2 parameter"
          },
          "advS3": {
            "type": "string",
            "title": "adv_s3",
            "description": "Custom adv s3 parameter"
          },
          "advS4": {
            "type": "string",
            "title": "adv_s4",
            "description": "Custom adv s4 parameter"
          },
          "advS5": {
            "type": "string",
            "title": "adv_s5",
            "description": "Custom adv s5 parameter"
          }
        },
        "title": "reports.v1.ConversionReportResponse.CustomParams",
        "additionalProperties": false,
        "description": "Custom advertiser parameters"
      },
      "reports.v1.ConversionReportResponse.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Advertiser name"
          }
        },
        "title": "reports.v1.ConversionReportResponse.RevenueOrigin",
        "additionalProperties": false,
        "description": "Revenue origin / advertiser"
      },
      "reports.v1.ConversionReportResponse.Row": {
        "type": "object",
        "properties": {
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "created_at",
            "description": "Timestamp of conversion's creation"
          },
          "conversionId": {
            "type": "string",
            "title": "conversion_id",
            "description": "Conversion ID"
          },
          "cid": {
            "type": "string",
            "title": "cid",
            "description": "Click ID"
          },
          "externalCid": {
            "type": "string",
            "title": "external_cid",
            "description": "External click ID"
          },
          "couponCode": {
            "type": "string",
            "title": "coupon_code",
            "description": "Coupon code"
          },
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code"
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.Source"
              }
            ],
            "title": "source",
            "description": "Traffic source"
          },
          "offer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.Offer"
              }
            ],
            "title": "offer",
            "description": "Offer"
          },
          "landingPage": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.LandingPage"
              }
            ],
            "title": "landing_page",
            "description": "(OPTIONAL) Landing page of the click"
          },
          "conversionStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
              }
            ],
            "title": "conversion_status",
            "description": "Conversion status"
          },
          "conversionType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.ConversionType"
              }
            ],
            "title": "conversion_type",
            "description": "Conversion type"
          },
          "conversionSourceType": {
            "type": "string",
            "title": "conversion_source_type",
            "description": "Traffic source type"
          },
          "conversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount",
            "description": "Original amount of the conversion the revenue and cost is calculated from"
          },
          "revenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue",
            "description": "Revenue"
          },
          "cost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost",
            "description": "Payout to affiliate"
          },
          "normalizedRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "normalized_revenue",
            "description": "Adjusted revenue"
          },
          "normalizedCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "normalized_cost",
            "description": "Adjusted payout to affiliate"
          },
          "originalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "original_revenue",
            "description": "Original revenue"
          },
          "originalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "original_cost",
            "description": "Original payout to affiliate"
          },
          "revenueUpdatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "revenue_updated_at",
            "description": "Timestamp of last revenue adjustment"
          },
          "costUpdatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "cost_updated_at",
            "description": "Timestamp of last payout to affiliate adjustment"
          },
          "customPayoutsApplied": {
            "type": "boolean",
            "title": "custom_payouts_applied",
            "description": "Custom payouts override automatically calculated values"
          },
          "currencyCode": {
            "type": "string",
            "title": "currency_code",
            "description": "Currency code"
          },
          "externalId": {
            "type": "string",
            "title": "external_id",
            "description": "External ID"
          },
          "customerId": {
            "type": "string",
            "title": "customer_id",
            "description": "Customer ID"
          },
          "params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.CustomParams"
              }
            ],
            "title": "params",
            "description": "Custom parameters"
          },
          "conversionSourceParams": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.ConversionSourceCustomParams"
              }
            ],
            "title": "conversion_source_params",
            "description": "Conversion source parameters"
          },
          "settlementId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "settlement_id",
            "description": "Settlement ID"
          },
          "accountSettlementId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "account_settlement_id",
            "description": "Self-billing invoice ID"
          },
          "fraudSuspicion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.FraudSuspicion"
              }
            ],
            "title": "fraud_suspicion",
            "description": "Is flagged by fraud detection system?"
          },
          "onHoldUntil": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.Timestamp"
              }
            ],
            "title": "on_hold_until",
            "description": "On-hold period end timestamp"
          },
          "revenueOrigin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.RevenueOrigin"
              }
            ],
            "title": "revenue_origin",
            "description": "Revenue origin / advertiser"
          },
          "claimId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "claim_id",
            "description": "Claim ID"
          },
          "revenueAdjustmentName": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "revenue_adjustment_name",
            "description": "(OPTIONAL) Revenue adjustment name. Revenue was adjusted only if it was filled."
          },
          "costAdjustmentName": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "cost_adjustment_name",
            "description": "(OPTIONAL) Affiliate's payout adjustment name. Affiliate's payout was adjusted only if it was filled."
          },
          "normalizedConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "normalized_conversion_amount",
            "description": "(OPTIONAL) Sales amount converted to the primary currency"
          },
          "normalizedExchangeRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "normalized_exchange_rate",
            "description": "(OPTIONAL) Exchange rate used for conversion to the primary currency"
          },
          "qualified": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.BoolValue"
              }
            ],
            "title": "qualified",
            "description": "(OPTIONAL) Designates if conversion is qualified."
          }
        },
        "title": "reports.v1.ConversionReportResponse.Row",
        "additionalProperties": false
      },
      "reports.v1.ConversionReportResponse.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Affiliate ID"
          },
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Affiliate public ID"
          }
        },
        "title": "reports.v1.ConversionReportResponse.Source",
        "additionalProperties": false,
        "description": "Source affiliate"
      },
      "reports.v1.CountryOverviewReportRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "Time range"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "Conversion statuses"
          },
          "columns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportColumns"
              }
            ],
            "title": "columns",
            "description": "(OPTIONAL) Optional requested report columns. All columns selected if not set."
          }
        },
        "title": "reports.v1.CountryOverviewReportRequest",
        "required": [
          "timeRange"
        ],
        "additionalProperties": false,
        "description": "Country overview report request"
      },
      "reports.v1.CountryOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.CountryOverviewReportResponse.Row"
            },
            "title": "rows"
          },
          "total": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.OverviewReportTotal"
              }
            ],
            "title": "total"
          },
          "filledColumns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            },
            "title": "filled_columns",
            "description": "List of filled columns with real values. The rest are filled with zero values."
          }
        },
        "title": "reports.v1.CountryOverviewReportResponse",
        "required": [
          "filledColumns"
        ],
        "additionalProperties": false,
        "description": "Country overview report data"
      },
      "reports.v1.CountryOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "title": "country_code",
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format."
          },
          "clickCount": {
            "type": "string",
            "title": "click_count",
            "format": "int64",
            "description": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "title": "gross_click_count",
            "format": "int64",
            "description": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "title": "coupon_count",
            "format": "int64",
            "description": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "title": "commission_count",
            "format": "int64",
            "description": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total payout for affiliates"
          },
          "totalCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_commission_amount",
            "description": "Total MLM commission payouts"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit"
          },
          "conversionPerClickRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_per_click_rate",
            "description": "Conversion per click ratio"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliate"
          },
          "conversionAmountPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount_per_click",
            "description": "Average conversion amount per click"
          },
          "revenuePerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue_per_click",
            "description": "Average revenue per click"
          },
          "costPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost_per_click",
            "description": "Average affiliate payout per click"
          },
          "averageCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_commission_amount",
            "description": "Average MLM commission payout per click"
          }
        },
        "title": "reports.v1.CountryOverviewReportResponse.Row",
        "additionalProperties": false
      },
      "reports.v1.Coupon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Coupon ID"
          },
          "code": {
            "type": "string",
            "title": "code",
            "description": "Coupon code"
          }
        },
        "title": "reports.v1.Coupon",
        "required": [
          "id",
          "code"
        ],
        "additionalProperties": false,
        "description": "Coupon"
      },
      "reports.v1.CustomColumns": {
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.CustomColumns.Column"
            },
            "title": "columns",
            "description": "Rate columns"
          }
        },
        "title": "reports.v1.CustomColumns",
        "required": [
          "columns"
        ],
        "additionalProperties": false,
        "description": "Custom columns"
      },
      "reports.v1.CustomColumns.Column": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "code",
            "description": "Rate column code"
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "value",
            "description": "Rate column value"
          }
        },
        "title": "reports.v1.CustomColumns.Column",
        "required": [
          "code",
          "value"
        ],
        "additionalProperties": false,
        "description": "Rate column"
      },
      "reports.v1.DailyOverviewReportRequest": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "title": "from",
            "maxLength": 10,
            "minLength": 10,
            "description": "Start date of reported days"
          },
          "to": {
            "type": "string",
            "title": "to",
            "maxLength": 10,
            "minLength": 10,
            "description": "End day of reported days"
          },
          "timezone": {
            "type": "string",
            "title": "timezone",
            "maxLength": 255,
            "minLength": 1,
            "description": "Timezone to offset in reports, as an IANA Time Zone database name (e.g. \"Europe/Prague\")"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Conversion types present in the report"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "(OPTIONAL) "
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "source_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) "
          },
          "columns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportColumns"
              }
            ],
            "title": "columns",
            "description": "(OPTIONAL) Optional requested report columns. All columns selected if not set."
          },
          "customColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportCustomColumns"
              }
            ],
            "title": "custom_columns",
            "description": "(OPTIONAL) Optional requested report custom columns. All columns selected if not set."
          },
          "clientMetricColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClientMetricColumns"
              }
            ],
            "title": "client_metric_columns",
            "description": "(OPTIONAL) Optional requested client metric columns. All columns selected if not set."
          }
        },
        "title": "reports.v1.DailyOverviewReportRequest",
        "required": [
          "from",
          "to",
          "timezone"
        ],
        "additionalProperties": false,
        "description": "Daily overview report request"
      },
      "reports.v1.DailyOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.DailyOverviewReportResponse.Row"
            },
            "title": "rows"
          },
          "total": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
              }
            ],
            "title": "total"
          },
          "filledColumns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            },
            "title": "filled_columns",
            "description": "List of filled columns with real values. The rest are filled with zero values."
          }
        },
        "title": "reports.v1.DailyOverviewReportResponse",
        "required": [
          "rows",
          "total",
          "filledColumns"
        ],
        "additionalProperties": false,
        "description": "Daily overview data"
      },
      "reports.v1.DailyOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "title": "date",
            "description": "Date"
          },
          "clickCount": {
            "type": "string",
            "title": "click_count",
            "format": "int64",
            "description": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "title": "gross_click_count",
            "format": "int64",
            "description": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "title": "coupon_count",
            "format": "int64",
            "description": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "title": "commission_count",
            "format": "int64",
            "description": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount for the day"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue for the day"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total affiliate payout for the day"
          },
          "totalCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_commission_amount",
            "description": "Total MLM commissions payout for the day"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit for the day"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit for the day"
          },
          "conversionPerClickRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_per_click_rate",
            "description": "Conversion per click ratio"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliate"
          },
          "conversionAmountPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount_per_click",
            "description": "Average conversion amount per click"
          },
          "revenuePerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue_per_click",
            "description": "Average revenue per click"
          },
          "costPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost_per_click",
            "description": "Average affiliate payout per click"
          },
          "averageCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_commission_amount",
            "description": "Average MLM commission payout per click"
          },
          "clickFraudRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "click_fraud_rate",
            "description": "Click fraud rate (percentage of clicks marked as suspicious)"
          },
          "conversionFraudRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_fraud_rate",
            "description": "Conversion fraud rate (percentage of conversions flagged as suspicious)"
          },
          "clientMetrics": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClientMetrics"
              }
            ],
            "title": "client_metrics",
            "description": "(OPTIONAL) Client metrics"
          },
          "customColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.CustomColumns"
              }
            ],
            "title": "custom_columns",
            "description": "(OPTIONAL) Custom columns"
          }
        },
        "title": "reports.v1.DailyOverviewReportResponse.Row",
        "required": [
          "date",
          "clickCount",
          "grossClickCount",
          "couponCount",
          "conversionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "totalCommissionAmount",
          "profit",
          "advertiserProfit",
          "conversionPerClickRate",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "conversionAmountPerClick",
          "revenuePerClick",
          "costPerClick",
          "averageCommissionAmount",
          "clickFraudRate",
          "conversionFraudRate"
        ],
        "additionalProperties": false
      },
      "reports.v1.GeneralOverviewReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "Time range"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "(OPTIONAL) Conversion statuses"
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "source_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Traffic source IDs"
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "account_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Account IDs"
          },
          "countryCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{2}$",
              "description": "(OPTIONAL) "
            },
            "title": "country_codes",
            "uniqueItems": true,
            "description": "(OPTIONAL) Country codes"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "revenue_origin_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Revenue origin IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "offer_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Offer IDs"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "category_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Category IDs"
          },
          "tierIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "tier_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Tier IDs"
          },
          "landingPageIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "landing_page_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Landing page IDs"
          },
          "couponIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "coupon_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Coupon IDs"
          },
          "affiliateManagerId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "affiliate_manager_id",
            "format": "uuid",
            "description": "(OPTIONAL) Affiliate manager ID"
          },
          "advS1s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "adv_s1s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Adv S1 parameter"
          },
          "advS2s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "adv_s2s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Adv S2 parameter"
          },
          "advS3s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "adv_s3s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Adv S3 parameter"
          },
          "advS4s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "adv_s4s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Adv S4 parameter"
          },
          "advS5s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "adv_s5s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Adv S5 parameter"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "aff_s1s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Aff S1 parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "aff_s2s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Aff S2 parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "aff_s3s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Aff S3 parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "aff_s4s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Aff S4 parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255,
              "description": "(OPTIONAL) "
            },
            "title": "aff_s5s",
            "uniqueItems": true,
            "description": "(OPTIONAL) Aff S5 parameter"
          },
          "smartLinkIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "smart_link_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Smart link IDs"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "offer_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "affiliate_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "(OPTIONAL) "
            },
            "title": "revenue_origin_tag_ids",
            "uniqueItems": true,
            "description": "(OPTIONAL) Filter rows by advertisers (revenue origins) having at least one of these tag IDs"
          }
        },
        "title": "reports.v1.GeneralOverviewReportFilters",
        "required": [
          "timeRange"
        ],
        "additionalProperties": false,
        "description": "General report filters"
      },
      "reports.v1.GeneralOverviewReportRequest": {
        "type": "object",
        "properties": {
          "filters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportFilters"
              }
            ],
            "title": "filters",
            "description": "Filters (see above)"
          },
          "groupingLevels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportGrouping"
            },
            "title": "grouping_levels",
            "maxItems": 1,
            "minItems": 1,
            "uniqueItems": true,
            "description": "Grouping levels for the report.\n\n Only a single grouping level is currently supported, so the report is grouped by one dimension at a time.\n To retrieve lower-depth data, send another request with the next grouping level and an additional filter\n that narrows the results to the parent row you want to break down."
          },
          "conversionDrilldown": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ConversionDrilldown"
              }
            ],
            "title": "conversion_drilldown",
            "description": "(OPTIONAL) Optional conversion drilldown statistics"
          },
          "columns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportColumns"
              }
            ],
            "title": "columns",
            "description": "(OPTIONAL) Optional requested report columns. All columns selected if not set."
          },
          "customColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportCustomColumns"
              }
            ],
            "title": "custom_columns",
            "description": "(OPTIONAL) Optional requested report custom columns. All columns selected if not set."
          },
          "clientMetricColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClientMetricColumns"
              }
            ],
            "title": "client_metric_columns",
            "description": "(OPTIONAL) Optional requested client metric columns. All columns selected if not set."
          },
          "timezone": {
            "type": "string",
            "title": "timezone",
            "maxLength": 255,
            "minLength": 1,
            "description": "Timezone to offset in reports, as an IANA Time Zone database name (e.g. \"Europe/Prague\")"
          }
        },
        "title": "reports.v1.GeneralOverviewReportRequest",
        "required": [
          "filters",
          "groupingLevels",
          "timezone"
        ],
        "additionalProperties": false,
        "description": "General overview request"
      },
      "reports.v1.GeneralOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.Row"
            },
            "title": "rows"
          },
          "total": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.Total"
              }
            ],
            "title": "total"
          },
          "filledColumns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            },
            "title": "filled_columns",
            "description": "List of filled columns with real values. The rest are filled with zero values."
          }
        },
        "title": "reports.v1.GeneralOverviewReportResponse",
        "required": [
          "rows",
          "total",
          "filledColumns"
        ],
        "additionalProperties": false,
        "description": "General overview data"
      },
      "reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues": {
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/google.protobuf.StringValue"
              }
            ],
            "title": "conversion_type_id",
            "description": "(OPTIONAL) "
          },
          "conversionStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
              }
            ],
            "title": "conversion_status",
            "description": "(OPTIONAL) "
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total payout to affiliates"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliates"
          },
          "averageClickConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_click_conversion_amount",
            "description": "Average conversion amount of click conversions"
          },
          "averageClickRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_click_revenue",
            "description": "Average revenue of click conversions"
          },
          "averageClickCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_click_cost",
            "description": "Average payout to affiliates of click conversions"
          }
        },
        "title": "reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues",
        "required": [
          "conversionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "profit",
          "advertiserProfit",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "averageClickConversionAmount",
          "averageClickRevenue",
          "averageClickCost"
        ],
        "additionalProperties": false
      },
      "reports.v1.GeneralOverviewReportResponse.Row": {
        "type": "object",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "account": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Account"
                  }
                ],
                "title": "account"
              }
            },
            "title": "account"
          },
          {
            "type": "object",
            "properties": {
              "advS1": {
                "type": "string",
                "title": "adv_s1"
              }
            },
            "title": "adv_s1"
          },
          {
            "type": "object",
            "properties": {
              "advS2": {
                "type": "string",
                "title": "adv_s2"
              }
            },
            "title": "adv_s2"
          },
          {
            "type": "object",
            "properties": {
              "advS3": {
                "type": "string",
                "title": "adv_s3"
              }
            },
            "title": "adv_s3"
          },
          {
            "type": "object",
            "properties": {
              "advS4": {
                "type": "string",
                "title": "adv_s4"
              }
            },
            "title": "adv_s4"
          },
          {
            "type": "object",
            "properties": {
              "advS5": {
                "type": "string",
                "title": "adv_s5"
              }
            },
            "title": "adv_s5"
          },
          {
            "type": "object",
            "properties": {
              "affS1": {
                "type": "string",
                "title": "aff_s1"
              }
            },
            "title": "aff_s1"
          },
          {
            "type": "object",
            "properties": {
              "affS2": {
                "type": "string",
                "title": "aff_s2"
              }
            },
            "title": "aff_s2"
          },
          {
            "type": "object",
            "properties": {
              "affS3": {
                "type": "string",
                "title": "aff_s3"
              }
            },
            "title": "aff_s3"
          },
          {
            "type": "object",
            "properties": {
              "affS4": {
                "type": "string",
                "title": "aff_s4"
              }
            },
            "title": "aff_s4"
          },
          {
            "type": "object",
            "properties": {
              "affS5": {
                "type": "string",
                "title": "aff_s5"
              }
            },
            "title": "aff_s5"
          },
          {
            "type": "object",
            "properties": {
              "affiliateManagerAccount": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Account"
                  }
                ],
                "title": "affiliate_manager_account"
              }
            },
            "title": "affiliate_manager_account"
          },
          {
            "type": "object",
            "properties": {
              "category": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Category"
                  }
                ],
                "title": "category"
              }
            },
            "title": "category"
          },
          {
            "type": "object",
            "properties": {
              "countryCode": {
                "type": "string",
                "title": "country_code"
              }
            },
            "title": "country_code"
          },
          {
            "type": "object",
            "properties": {
              "coupon": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Coupon"
                  }
                ],
                "title": "coupon"
              }
            },
            "title": "coupon"
          },
          {
            "type": "object",
            "properties": {
              "day": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/google.protobuf.Timestamp"
                  }
                ],
                "title": "day"
              }
            },
            "title": "day"
          },
          {
            "type": "object",
            "properties": {
              "device": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/enums.v1.Device"
                  }
                ],
                "title": "device"
              }
            },
            "title": "device"
          },
          {
            "type": "object",
            "properties": {
              "hour": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/google.protobuf.Timestamp"
                  }
                ],
                "title": "hour"
              }
            },
            "title": "hour"
          },
          {
            "type": "object",
            "properties": {
              "landingPage": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.LandingPage"
                  }
                ],
                "title": "landing_page"
              }
            },
            "title": "landing_page"
          },
          {
            "type": "object",
            "properties": {
              "month": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/google.protobuf.Timestamp"
                  }
                ],
                "title": "month"
              }
            },
            "title": "month"
          },
          {
            "type": "object",
            "properties": {
              "offer": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Offer"
                  }
                ],
                "title": "offer"
              }
            },
            "title": "offer"
          },
          {
            "type": "object",
            "properties": {
              "operatingSystem": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/enums.v1.OperatingSystem"
                  }
                ],
                "title": "operating_system"
              }
            },
            "title": "operating_system"
          },
          {
            "type": "object",
            "properties": {
              "revenueOrigin": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.RevenueOrigin"
                  }
                ],
                "title": "revenue_origin"
              }
            },
            "title": "revenue_origin"
          },
          {
            "type": "object",
            "properties": {
              "smartLink": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.SmartLink"
                  }
                ],
                "title": "smart_link"
              }
            },
            "title": "smart_link"
          },
          {
            "type": "object",
            "properties": {
              "source": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Source"
                  }
                ],
                "title": "source"
              }
            },
            "title": "source"
          },
          {
            "type": "object",
            "properties": {
              "tier": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/reports.v1.Tier"
                  }
                ],
                "title": "tier"
              }
            },
            "title": "tier"
          },
          {
            "type": "object",
            "properties": {
              "week": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/google.protobuf.Timestamp"
                  }
                ],
                "title": "week"
              }
            },
            "title": "week"
          },
          {
            "type": "object",
            "properties": {
              "year": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/google.protobuf.Timestamp"
                  }
                ],
                "title": "year"
              }
            },
            "title": "year"
          }
        ],
        "unevaluatedProperties": false,
        "not": {
          "allOf": [
            {
              "anyOf": [
                {
                  "required": [
                    "account"
                  ]
                },
                {
                  "required": [
                    "advS1"
                  ]
                },
                {
                  "required": [
                    "advS2"
                  ]
                },
                {
                  "required": [
                    "advS3"
                  ]
                },
                {
                  "required": [
                    "advS4"
                  ]
                },
                {
                  "required": [
                    "advS5"
                  ]
                },
                {
                  "required": [
                    "affS1"
                  ]
                },
                {
                  "required": [
                    "affS2"
                  ]
                },
                {
                  "required": [
                    "affS3"
                  ]
                },
                {
                  "required": [
                    "affS4"
                  ]
                },
                {
                  "required": [
                    "affS5"
                  ]
                },
                {
                  "required": [
                    "affiliateManagerAccount"
                  ]
                },
                {
                  "required": [
                    "category"
                  ]
                },
                {
                  "required": [
                    "countryCode"
                  ]
                },
                {
                  "required": [
                    "coupon"
                  ]
                },
                {
                  "required": [
                    "day"
                  ]
                },
                {
                  "required": [
                    "device"
                  ]
                },
                {
                  "required": [
                    "hour"
                  ]
                },
                {
                  "required": [
                    "landingPage"
                  ]
                },
                {
                  "required": [
                    "month"
                  ]
                },
                {
                  "required": [
                    "offer"
                  ]
                },
                {
                  "required": [
                    "operatingSystem"
                  ]
                },
                {
                  "required": [
                    "revenueOrigin"
                  ]
                },
                {
                  "required": [
                    "smartLink"
                  ]
                },
                {
                  "required": [
                    "source"
                  ]
                },
                {
                  "required": [
                    "tier"
                  ]
                },
                {
                  "required": [
                    "week"
                  ]
                },
                {
                  "required": [
                    "year"
                  ]
                }
              ]
            },
            {
              "not": {
                "oneOf": [
                  {
                    "required": [
                      "account"
                    ]
                  },
                  {
                    "required": [
                      "advS1"
                    ]
                  },
                  {
                    "required": [
                      "advS2"
                    ]
                  },
                  {
                    "required": [
                      "advS3"
                    ]
                  },
                  {
                    "required": [
                      "advS4"
                    ]
                  },
                  {
                    "required": [
                      "advS5"
                    ]
                  },
                  {
                    "required": [
                      "affS1"
                    ]
                  },
                  {
                    "required": [
                      "affS2"
                    ]
                  },
                  {
                    "required": [
                      "affS3"
                    ]
                  },
                  {
                    "required": [
                      "affS4"
                    ]
                  },
                  {
                    "required": [
                      "affS5"
                    ]
                  },
                  {
                    "required": [
                      "affiliateManagerAccount"
                    ]
                  },
                  {
                    "required": [
                      "category"
                    ]
                  },
                  {
                    "required": [
                      "countryCode"
                    ]
                  },
                  {
                    "required": [
                      "coupon"
                    ]
                  },
                  {
                    "required": [
                      "day"
                    ]
                  },
                  {
                    "required": [
                      "device"
                    ]
                  },
                  {
                    "required": [
                      "hour"
                    ]
                  },
                  {
                    "required": [
                      "landingPage"
                    ]
                  },
                  {
                    "required": [
                      "month"
                    ]
                  },
                  {
                    "required": [
                      "offer"
                    ]
                  },
                  {
                    "required": [
                      "operatingSystem"
                    ]
                  },
                  {
                    "required": [
                      "revenueOrigin"
                    ]
                  },
                  {
                    "required": [
                      "smartLink"
                    ]
                  },
                  {
                    "required": [
                      "source"
                    ]
                  },
                  {
                    "required": [
                      "tier"
                    ]
                  },
                  {
                    "required": [
                      "week"
                    ]
                  },
                  {
                    "required": [
                      "year"
                    ]
                  }
                ]
              }
            }
          ]
        },
        "properties": {
          "values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
              }
            ],
            "title": "values"
          },
          "conversionDrilldownValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues"
            },
            "title": "conversion_drilldown_values",
            "description": "(OPTIONAL) "
          }
        },
        "title": "reports.v1.GeneralOverviewReportResponse.Row",
        "required": [
          "values"
        ]
      },
      "reports.v1.GeneralOverviewReportResponse.Total": {
        "type": "object",
        "properties": {
          "values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
              }
            ],
            "title": "values"
          },
          "conversionDrilldownValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues"
            },
            "title": "conversion_drilldown_values",
            "description": "(OPTIONAL) "
          }
        },
        "title": "reports.v1.GeneralOverviewReportResponse.Total",
        "required": [
          "values"
        ],
        "additionalProperties": false
      },
      "reports.v1.LandingPage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Internal ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Landing page name"
          },
          "url": {
            "type": "string",
            "title": "url",
            "description": "Landing page URL"
          }
        },
        "title": "reports.v1.LandingPage",
        "required": [
          "id",
          "name",
          "url"
        ],
        "additionalProperties": false,
        "description": "Landing page"
      },
      "reports.v1.Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Offer ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Offer name"
          }
        },
        "title": "reports.v1.Offer",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Offer"
      },
      "reports.v1.OfferOverviewReportRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.TimeRange"
              }
            ],
            "title": "time_range",
            "description": "Time range"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "conversion_type_ids",
            "uniqueItems": true,
            "description": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "conversion_statuses",
            "uniqueItems": true,
            "description": "Conversion statuses"
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "title": "source_ids",
            "description": "Traffic source IDs"
          },
          "columns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ReportColumns"
              }
            ],
            "title": "columns",
            "description": "(OPTIONAL) Optional requested report columns. All columns selected if not set."
          }
        },
        "title": "reports.v1.OfferOverviewReportRequest",
        "required": [
          "timeRange"
        ],
        "additionalProperties": false,
        "description": "Offer report request"
      },
      "reports.v1.OfferOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.OfferOverviewReportResponse.Row"
            },
            "title": "rows"
          },
          "total": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.OverviewReportTotal"
              }
            ],
            "title": "total"
          },
          "filledColumns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            },
            "title": "filled_columns",
            "description": "List of filled columns with real values. The rest are filled with zero values."
          }
        },
        "title": "reports.v1.OfferOverviewReportResponse",
        "required": [
          "filledColumns"
        ],
        "additionalProperties": false,
        "description": "Offer report data"
      },
      "reports.v1.OfferOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "offer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.Offer"
              }
            ],
            "title": "offer",
            "description": "Offer"
          },
          "clickCount": {
            "type": "string",
            "title": "click_count",
            "format": "int64",
            "description": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "title": "gross_click_count",
            "format": "int64",
            "description": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "title": "coupon_count",
            "format": "int64",
            "description": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "title": "commission_count",
            "format": "int64",
            "description": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total payout to affiliates"
          },
          "totalCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_commission_amount",
            "description": "Total payout of MLM commissions"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit"
          },
          "conversionPerClickRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_per_click_rate",
            "description": "Conversion per click ratio"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliate"
          },
          "conversionAmountPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount_per_click",
            "description": "Average conversion amount per click"
          },
          "revenuePerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue_per_click",
            "description": "Average revenue per click"
          },
          "costPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost_per_click",
            "description": "Average affiliate payout per click"
          },
          "averageCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_commission_amount",
            "description": "Average MLM commission payout per click"
          }
        },
        "title": "reports.v1.OfferOverviewReportResponse.Row",
        "additionalProperties": false
      },
      "reports.v1.OverviewReportTotal": {
        "type": "object",
        "properties": {
          "clickCount": {
            "type": "string",
            "title": "click_count",
            "format": "int64",
            "description": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "title": "gross_click_count",
            "format": "int64",
            "description": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "title": "coupon_count",
            "format": "int64",
            "description": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "title": "commission_count",
            "format": "int64",
            "description": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total payout to affiliates"
          },
          "totalCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_commission_amount",
            "description": "Total payout of MLM commissions"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit"
          },
          "conversionPerClickRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_per_click_rate",
            "description": "Conversion per click ratio"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliates"
          },
          "conversionAmountPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount_per_click",
            "description": "Average conversion amount per click"
          },
          "revenuePerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue_per_click",
            "description": "Average revenue per click"
          },
          "costPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost_per_click",
            "description": "Average payout to affiliates per click"
          },
          "averageCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_commission_amount",
            "description": "Average MLM commission amount paid"
          }
        },
        "title": "reports.v1.OverviewReportTotal",
        "additionalProperties": false,
        "description": "Overview report total"
      },
      "reports.v1.OverviewReportValues": {
        "type": "object",
        "properties": {
          "clickCount": {
            "type": "string",
            "title": "click_count",
            "format": "int64",
            "description": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "title": "gross_click_count",
            "format": "int64",
            "description": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "title": "coupon_count",
            "format": "int64",
            "description": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "title": "conversion_count",
            "format": "int64",
            "description": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "title": "commission_count",
            "format": "int64",
            "description": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_conversion_amount",
            "description": "Total conversion amount"
          },
          "totalRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_revenue",
            "description": "Total revenue"
          },
          "totalCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_cost",
            "description": "Total payout to affiliates"
          },
          "totalCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "total_commission_amount",
            "description": "Total payout of MLM commissions"
          },
          "profit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "profit",
            "description": "Total profit"
          },
          "advertiserProfit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "advertiser_profit",
            "description": "Total advertiser profit"
          },
          "conversionPerClickRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_per_click_rate",
            "description": "Conversion per click ratio"
          },
          "averageConversionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_conversion_amount",
            "description": "Average conversion amount"
          },
          "averageRevenue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_revenue",
            "description": "Average revenue"
          },
          "averageCost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_cost",
            "description": "Average payout to affiliates"
          },
          "conversionAmountPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_amount_per_click",
            "description": "Average conversion amount per click"
          },
          "revenuePerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "revenue_per_click",
            "description": "Average revenue per click"
          },
          "costPerClick": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "cost_per_click",
            "description": "Average payout to affiliates per click"
          },
          "averageCommissionAmount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "average_commission_amount",
            "description": "Average MLM commission amount paid"
          },
          "clickFraudRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "click_fraud_rate",
            "description": "Click fraud rate (percentage of clicks marked as suspicious)"
          },
          "conversionFraudRate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Decimal"
              }
            ],
            "title": "conversion_fraud_rate",
            "description": "Conversion fraud rate (percentage of conversions flagged as suspicious)"
          },
          "clientMetrics": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.ClientMetrics"
              }
            ],
            "title": "client_metrics",
            "description": "(OPTIONAL) Client metrics"
          },
          "customColumns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reports.v1.CustomColumns"
              }
            ],
            "title": "custom_columns",
            "description": "(OPTIONAL) Custom columns"
          }
        },
        "title": "reports.v1.OverviewReportValues",
        "required": [
          "clickCount",
          "grossClickCount",
          "couponCount",
          "conversionCount",
          "commissionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "totalCommissionAmount",
          "profit",
          "advertiserProfit",
          "conversionPerClickRate",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "conversionAmountPerClick",
          "revenuePerClick",
          "costPerClick",
          "averageCommissionAmount",
          "clickFraudRate",
          "conversionFraudRate"
        ],
        "additionalProperties": false,
        "description": "Overview report values"
      },
      "reports.v1.ReportColumns": {
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            },
            "title": "columns",
            "minItems": 1,
            "uniqueItems": true
          }
        },
        "title": "reports.v1.ReportColumns",
        "required": [
          "columns"
        ],
        "additionalProperties": false,
        "description": "Requested report columns"
      },
      "reports.v1.ReportCustomColumns": {
        "type": "object",
        "properties": {
          "codes": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50,
              "minLength": 1
            },
            "title": "codes",
            "uniqueItems": true
          }
        },
        "title": "reports.v1.ReportCustomColumns",
        "required": [
          "codes"
        ],
        "additionalProperties": false,
        "description": "Requested report columns"
      },
      "reports.v1.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Advertiser name"
          }
        },
        "title": "reports.v1.RevenueOrigin",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Advertiser"
      },
      "reports.v1.SmartLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Smart link ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Smart link name"
          }
        },
        "title": "reports.v1.SmartLink",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Smart link"
      },
      "reports.v1.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Source ID"
          },
          "publicId": {
            "type": "string",
            "title": "public_id",
            "description": "Affiliate public ID"
          }
        },
        "title": "reports.v1.Source",
        "required": [
          "id",
          "publicId"
        ],
        "additionalProperties": false,
        "description": "Source"
      },
      "reports.v1.Tier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "id",
            "description": "Tier ID"
          },
          "name": {
            "type": "string",
            "title": "name",
            "description": "Tier name"
          }
        },
        "title": "reports.v1.Tier",
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "Tier"
      },
      "types.v1.Anura": {
        "type": "object",
        "properties": {
          "anuraScore": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enums.v1.AnuraScore"
              }
            ],
            "title": "anura_score"
          },
          "result": {
            "allOf": [
              {
                "$ref": "#/components/schemas/types.v1.Anura.Result"
              }
            ],
            "title": "result"
          }
        },
        "title": "types.v1.Anura",
        "additionalProperties": false
      },
      "types.v1.Anura.Result": {
        "type": "object",
        "properties": {
          "result": {
            "type": "string",
            "title": "result"
          },
          "mobile": {
            "type": "integer",
            "title": "mobile",
            "format": "int32"
          },
          "adblocker": {
            "type": "integer",
            "title": "adblocker",
            "format": "int32"
          },
          "ruleSets": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "rule_sets"
          }
        },
        "title": "types.v1.Anura.Result",
        "additionalProperties": false
      },
      "types.v1.FraudSuspicionFilter": {
        "type": "object",
        "properties": {
          "isSuspected": {
            "type": "boolean",
            "title": "is_suspected"
          }
        },
        "title": "types.v1.FraudSuspicionFilter",
        "additionalProperties": false
      },
      "errorsv1.Error": {
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "errorsv1.ErrorResponse": {
        "properties": {
          "available_code": {
            "$ref": "#/components/schemas/errorsv1.ErrorResponse_Code"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/errorsv1.Error"
            },
            "type": "array",
            "uniqueItems": false
          }
        },
        "type": "object"
      },
      "errorsv1.ErrorResponse_Code": {
        "type": "object"
      },
      "oauth_registration.errorResponse": {
        "properties": {
          "error": {
            "type": "string"
          },
          "error_description": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "oauth_registration.registrationRequest": {
        "properties": {
          "client_name": {
            "description": "Shown to the resource owner on the consent screen. Without one, the screen calls the client unnamed.",
            "type": "string"
          },
          "grant_types": {
            "description": "Optional. Asking for any other grant is refused.",
            "items": {
              "enum": [
                "authorization_code",
                "refresh_token"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": false
          },
          "redirect_uris": {
            "description": "At least one is required. HTTPS only, except loopback hosts, which may use HTTP. Credentials and fragments are rejected. The\nauthorization request must repeat one of these exactly, except that a loopback redirect may arrive on any port.",
            "items": {
              "format": "uri",
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array",
            "uniqueItems": false
          },
          "response_types": {
            "description": "Optional. Asking for any other response type is refused.",
            "items": {
              "enum": [
                "code"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": false
          },
          "scope": {
            "description": "Optional. The only scope on offer is api.",
            "type": "string"
          },
          "token_endpoint_auth_method": {
            "description": "Optional. Any method the token endpoint accepts may be asked for, but the client is registered with none: it holds no secret and proves\npossession through PKCE. Asking for any other method is refused.",
            "enum": [
              "client_secret_basic",
              "client_secret_post",
              "none"
            ],
            "type": "string"
          }
        },
        "required": [
          "redirect_uris"
        ],
        "type": "object"
      },
      "oauth_registration.registrationResponse": {
        "properties": {
          "client_id": {
            "type": "string"
          },
          "client_id_issued_at": {
            "description": "Registration time as seconds since the Unix epoch.",
            "format": "int64",
            "type": "integer"
          },
          "client_name": {
            "type": "string"
          },
          "grant_types": {
            "items": {
              "enum": [
                "authorization_code",
                "refresh_token"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": false
          },
          "redirect_uris": {
            "items": {
              "format": "uri",
              "type": "string"
            },
            "type": "array",
            "uniqueItems": false
          },
          "response_types": {
            "items": {
              "enum": [
                "code"
              ],
              "type": "string"
            },
            "type": "array",
            "uniqueItems": false
          },
          "scope": {
            "enum": [
              "api"
            ],
            "type": "string"
          },
          "token_endpoint_auth_method": {
            "enum": [
              "none"
            ],
            "type": "string"
          }
        },
        "required": [
          "client_id",
          "client_id_issued_at",
          "grant_types",
          "redirect_uris",
          "response_types",
          "scope",
          "token_endpoint_auth_method"
        ],
        "type": "object"
      },
      "oauth_token.errorResponse": {
        "properties": {
          "error": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "oauth_token.tokenResponse": {
        "properties": {
          "access_token": {
            "type": "string"
          },
          "expires_in": {
            "description": "Token lifetime in seconds.",
            "format": "int32",
            "type": "integer"
          },
          "refresh_token": {
            "description": "Returned for authorization_code and refresh_token grants.",
            "type": "string"
          },
          "scope": {
            "enum": [
              "api"
            ],
            "type": "string"
          },
          "token_type": {
            "enum": [
              "Bearer"
            ],
            "type": "string"
          }
        },
        "required": [
          "access_token",
          "expires_in",
          "scope",
          "token_type"
        ],
        "type": "object"
      }
    }
  }
}
