{
  "openapi": "3.0.0",
  "info": {
    "title": "Trackdesk public API",
    "description": "Tenant ID\n=========\n\nPlease, fill in your tenant ID, a.k.a. the subdomain on which is your program 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 API key from your settings.\n\nHow to get an API key?\n=================\n\n1. Navigate to your program URL, e.g. https://my-awesome-affiliate-system.trackdesk.com.\n2. Click on your name at the right top corner.\n3. Click on Settings.\n4. Click on Personal access tokens in Integrations section.\n5. Generate new API key and copy its content to the input above.\n",
    "termsOfService": "https://trackdesk.com/terms-conditions",
    "version": "1.0",
    "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",
      "variables": {
        "tenantId": {
          "default": "unknown"
        }
      }
    }
  ],
  "paths": {
    "/api/node/account-notes/v1": {
      "post": {
        "operationId": "AccountNoteService_CreateAccountNote",
        "summary": "Create account note",
        "description": "Creates a new note attached to a specific affiliate account.\n- Errors: may use ERROR_CODE_ACCOUNT_NOT_FOUND when account_id does not exist.",
        "requestBody": {
          "description": "Request to create a new note for an affiliate account.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/account_notes.v1.CreateAccountNoteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/account_notes.v1.CreateAccountNoteResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Account Notes Account Note V1"
        ]
      }
    },
    "/api/node/account-notes/v1/account/{accountId}": {
      "get": {
        "operationId": "AccountNoteService_ListAccountNotesForAccount",
        "summary": "List account notes for account",
        "description": "Lists notes for a given affiliate account ordered by creation time.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Affiliate account UUID whose notes are requested.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/account_notes.v1.ListAccountNotesForAccountResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Account Notes Account Note V1"
        ]
      }
    },
    "/api/node/account-notes/v1/{id}": {
      "delete": {
        "operationId": "AccountNoteService_DeleteAccountNote",
        "summary": "Delete account note",
        "description": "Removes a note by its unique identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Note UUID to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/account_notes.v1.DeleteAccountNoteResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Account Notes Account Note V1"
        ]
      }
    },
    "/api/reports/affiliate-overview-report/v1": {
      "post": {
        "operationId": "ReportsService_AffiliateOverviewReport",
        "summary": "Affiliate overview report",
        "description": "Deprecated: Shows data related to individual affiliates and their performance.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.AffiliateOverviewReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reports.v1.AffiliateOverviewReportResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/api/node/affiliates/v1": {
      "post": {
        "operationId": "AffiliateService_ListAffiliates",
        "summary": "List affiliates",
        "description": "List the existing affiliates in your system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliates.v1.ListAffiliatesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.ListAffiliatesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/affiliates/v1/register-with-user": {
      "post": {
        "operationId": "AffiliateService_RegisterAffiliateWithUser",
        "summary": "Create new affiliate",
        "description": "Creates a new affiliate in your system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliates.v1.RegisterAffiliateWithUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.RegisterAffiliateWithUserResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/affiliates/v1/registration-data/{accountId}": {
      "get": {
        "operationId": "AffiliateService_GetAffiliateRegistrationData",
        "summary": "Affiliate registration data",
        "description": "Get the data the affiliate filled in during registration.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account ID of the affiliate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.GetAffiliateRegistrationDataResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      },
      "post": {
        "operationId": "AffiliateService_CreateAffiliateRegistrationData",
        "summary": "Create affiliate registration data",
        "description": "Create affiliate registration data for the affiliate.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account ID of the affiliate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliates.v1.AffiliateService.CreateAffiliateRegistrationDataBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.CreateAffiliateRegistrationDataResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/affiliates/v1/{accountId}": {
      "get": {
        "operationId": "AffiliateService_GetAffiliate",
        "summary": "Affiliate details",
        "description": "Get detailed information about a specific affiliate.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account ID of the affiliate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      },
      "delete": {
        "operationId": "AffiliateService_DeleteAffiliate",
        "summary": "Delete affiliate",
        "description": "Deletes affiliate from the system.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account ID of the affiliate.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.DeleteAffiliateResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/affiliates/v1/{sourcePublicId.value}/status": {
      "put": {
        "operationId": "AffiliateService_SetAffiliateStatus",
        "summary": "Set affiliate status",
        "description": "Lets you change the status of an affiliate.",
        "parameters": [
          {
            "name": "sourcePublicId.value",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliates.v1.AffiliateService.SetAffiliateStatusBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.SetAffiliateStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/affiliates/v1/{sourcePublicId.value}/tier": {
      "put": {
        "operationId": "AffiliateService_SetAffiliateTier",
        "summary": "Set affiliate tier",
        "description": "Set a tier for the selected affiliates.",
        "parameters": [
          {
            "name": "sourcePublicId.value",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/affiliates.v1.AffiliateService.SetAffiliateTierBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/affiliates.v1.SetAffiliateTierResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Affiliates Affiliate V1"
        ]
      }
    },
    "/api/node/billing-details/v1": {
      "post": {
        "operationId": "BillingDetailService_SetBillingDetail",
        "summary": "Set billing detail",
        "description": "Fill in the billing details for affiliate's account.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/billing_details.v1.SetBillingDetailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Details Billing Detail V1"
        ]
      }
    },
    "/api/node/billing/v1/account-balances/{accountId}": {
      "get": {
        "operationId": "BalanceService_GetBalancesForAccount",
        "summary": "Get balances for account",
        "description": "Retrieves balance breakdown for a specific affiliate including open, on-hold, and settled amounts.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "ID of the affiliate to whom balances are credited.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "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",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Balance V1"
        ]
      }
    },
    "/api/node/billing/v1/account-settlements": {
      "get": {
        "operationId": "SettlementService_ListAccountSettlements",
        "summary": "List affiliate settlements",
        "description": "Lists all settlements for a specific affiliate or all affiliates.",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "timeRange.from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeRange.to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "description": "ID of affiliate for which to show affiliate settlements.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/node/billing/v1/account-settlements/{id}": {
      "delete": {
        "operationId": "SettlementService_DeleteAccountSettlement",
        "summary": "Delete affiliate settlement",
        "description": "Deletes settlement for specific affiliate without deleting the entirety of a single settlement.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of individual affiliate settlements to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.DeleteAccountSettlementResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/node/billing/v1/account-settlements/{id}/status": {
      "put": {
        "operationId": "SettlementService_UpdateAccountSettlementStatus",
        "summary": "Update affiliate settlement status",
        "description": "Updates the status of a single affiliate settlement.\nManual status change is forbidden for Tipalti settlements, and the ERROR status cannot be set manually.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the affiliate settlement",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/billing.v1.SettlementService.UpdateAccountSettlementStatusBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.UpdateAccountSettlementStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/node/billing/v1/open-balances": {
      "get": {
        "operationId": "BalanceService_ListOpenBalances",
        "summary": "List open balances",
        "description": "Lists open balances for affiliates with details about conversion and commission amounts by status.",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "filter.until",
            "in": "query",
            "description": "Day until which the settlement is settled.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "filter.minAmount.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.defaultPaymentMethodTypes",
            "in": "query",
            "description": "Payment methods used for the settlement.\n\n - PAYMENT_METHOD_TYPE_TIPALTI: WARNING: This enum index (16) is referenced in cel expression in registration.proto.",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "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_TIPALTI",
                  "PAYMENT_METHOD_TYPE_USDC",
                  "PAYMENT_METHOD_TYPE_USDT",
                  "PAYMENT_METHOD_TYPE_WISE"
                ]
              }
            },
            "explode": true
          },
          {
            "name": "filter.minConversionCount",
            "in": "query",
            "description": "Minimum conversion count of open balance required for generation of affiliate settlement.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "filter.minConversionSourceCount",
            "in": "query",
            "description": "Minimum conversion source count of open balance required for generation of affiliate settlement",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "filter.tierIds",
            "in": "query",
            "description": "Affiliate tiers of of settled affiliates.",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.conversionTypeIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.offerIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.revenueOriginIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.affiliateTagIds",
            "in": "query",
            "description": "Filter affiliates whose accounts have at least one of these tag IDs assigned (OR semantics).",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.offerTagIds",
            "in": "query",
            "description": "Filter rows by offers having at least one of these tag IDs assigned (OR semantics).",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "filter.revenueOriginTagIds",
            "in": "query",
            "description": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs assigned (OR semantics).",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.ListOpenBalancesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Balance V1"
        ]
      }
    },
    "/api/node/billing/v1/settle-balances": {
      "post": {
        "operationId": "SettlementService_SettleBalances",
        "summary": "Create settlement",
        "description": "Creates a new settlement for selected affiliates covering balances up to the specified date.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/billing.v1.SettleBalancesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.SettleBalancesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/node/billing/v1/settlements": {
      "get": {
        "operationId": "SettlementService_ListSettlements",
        "summary": "List settlements",
        "description": "List all existing settlements in the selected timeframe.",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "timeRange.from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeRange.to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.ListSettlementsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/node/billing/v1/settlements/{id}": {
      "get": {
        "operationId": "SettlementService_GetSettlement",
        "summary": "Get settlement",
        "description": "Get information about the settlement.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of the settlement",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.GetSettlementResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      },
      "delete": {
        "operationId": "SettlementService_DeleteSettlement",
        "summary": "Delete settlement",
        "description": "Delete the entirety of a single settlement. This might include settlements of multiple affiliates.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of settlements to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/billing.v1.DeleteSettlementResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Billing Settlement V1"
        ]
      }
    },
    "/api/reports/click-report/v1": {
      "post": {
        "operationId": "ReportsService_ClickReport",
        "summary": "Click report",
        "description": "Provides information about registered clicks.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.ClickReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/api/node/clicks/v1": {
      "post": {
        "operationId": "ClicksService_CreateClick",
        "summary": "Create click",
        "description": "Creates a new click in the system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clicks.v1.CreateClickRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clicks.v1.CreateClickResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Clicks V1"
        ]
      }
    },
    "/client/v1": {
      "post": {
        "operationId": "ConversionSourceService_CreateClient",
        "summary": "Create client",
        "description": "Create client associated with the click.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking.v1.CreateClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.CreateClientResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion Source V1"
        ]
      }
    },
    "/clients/v1": {
      "patch": {
        "operationId": "ClientService_UpdateClient",
        "summary": "Update client",
        "description": "Updates mutable fields of a client. Fields absent from the request are left unchanged.",
        "requestBody": {
          "description": "Update client.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clients.v1.UpdateClientRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clients.v1.UpdateClientResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Clients V1"
        ]
      }
    },
    "/clients/v1/metrics": {
      "get": {
        "operationId": "ClientMetricService_ListClientMetrics",
        "summary": "List client metrics",
        "description": "Returns all integer and decimal metrics defined for the revenue origin.",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Client Metrics Client Metric V1"
        ]
      }
    },
    "/clients/v1/metrics/movements": {
      "post": {
        "operationId": "ClientMetricTrackingService_CreateClientMetricMovement",
        "summary": "Create client metric movement",
        "description": "Records metric values for a client identified by external_client_id. Duplicate requests with the same request_id are silently ignored.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/client_metrics.v1.CreateClientMetricMovementRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client_metrics.v1.CreateClientMetricMovementResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Client Metrics Client Metric Tracking V1"
        ]
      }
    },
    "/clients/v1/metrics/movements/list": {
      "post": {
        "operationId": "ClientMetricMovementService_ListClientMetricMovements",
        "summary": "List client metric movements",
        "description": "Returns a paginated list of metric movements matching the given filters.",
        "requestBody": {
          "description": "List client metric movements matching the given filters.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Client Metrics Client Metric Movement V1"
        ]
      }
    },
    "/clients/v1/metrics/{id}/name": {
      "patch": {
        "operationId": "ClientMetricService_UpdateClientMetricName",
        "summary": "Update client metric name",
        "description": "Updates the display name of an existing client metric.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Internal identifier of the metric.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/client_metrics.v1.ClientMetricService.UpdateClientMetricNameBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client_metrics.v1.UpdateClientMetricNameResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Client Metrics Client Metric V1"
        ]
      }
    },
    "/clients/v1/metrics/{id}/visibility": {
      "patch": {
        "operationId": "ClientMetricService_UpdateClientMetricVisibility",
        "summary": "Update client metric visibility",
        "description": "Controls whether the metric is visible in the UI.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Internal identifier of the metric.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/client_metrics.v1.ClientMetricService.UpdateClientMetricVisibilityBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client_metrics.v1.UpdateClientMetricVisibilityResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Client Metrics Client Metric V1"
        ]
      }
    },
    "/api/reports/conversion-report/v1": {
      "post": {
        "operationId": "ReportsService_ConversionReport",
        "summary": "Conversion report",
        "description": "Shows data related to conversions tracked by the system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.ConversionReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/api/node/conversion-types/v1/for-cid/{cid}": {
      "get": {
        "operationId": "ConversionTypesService_ListConversionTypesAvailableForCid",
        "summary": "List conversion types available for CID",
        "description": "Provides a list of conversion types that are available for the requesting click identifier (CID)",
        "parameters": [
          {
            "name": "cid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Conversion Types Conversion Types V1"
        ]
      }
    },
    "/tracking/conversion/v1": {
      "get": {
        "operationId": "ConversionService_CreateConversion2",
        "summary": "Create conversion",
        "description": "Create a new conversion in the system.",
        "parameters": [
          {
            "name": "cid",
            "in": "query",
            "description": "The click identification associated with the conversion. When cid is filled, then external_cid/external_client_id cannot be filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalCid",
            "in": "query",
            "description": "External CID associated with the conversion. See [Conversion sources](#tag--tracking.v1.ConversionSourceService) for more details.\n\nwhen external_cid is filled, then revenue_origin_id must also be filled, and cid/external_client_id cannot be filled",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalClientId",
            "in": "query",
            "description": "External client ID associated with the conversion.\n\nWhen external_client_id is filled, then revenue_origin_id must also be filled, and cid/external_cid cannot be filled",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "couponCodes",
            "in": "query",
            "description": "Coupons to be redeemed within the conversion.\n\nwhen coupon codes are not empty, then revenue_origin_id must also be filled",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          },
          {
            "name": "revenueOriginId",
            "in": "query",
            "description": "Assigned revenue origin. Can be obtained from unique trackdesk identifiers in the settings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversionTypeCode",
            "in": "query",
            "description": "Type of the conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of the conversion.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "CONVERSION_STATUS_UNSPECIFIED",
              "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"
              ]
            }
          },
          {
            "name": "amount.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency.code",
            "in": "query",
            "description": "The three-letter currency code defined in ISO 4217.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalId",
            "in": "query",
            "description": "External ID  is used for deduplication of conversions. When the conversion is created with an External ID, no other conversion can be created with the same External ID.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer ID, your specific custom identifier.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customParams.advS1",
            "in": "query",
            "description": "Custom adv S1 parameter assigned to a conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customParams.advS2",
            "in": "query",
            "description": "Custom adv S2 parameter assigned to a conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customParams.advS3",
            "in": "query",
            "description": "Custom adv S3 parameter assigned to a conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customParams.advS4",
            "in": "query",
            "description": "Custom adv S4 parameter assigned to a conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customParams.advS5",
            "in": "query",
            "description": "Custom adv S5 parameter assigned to a conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "qualified",
            "in": "query",
            "description": "Qualification baseline evaluation value - override default behavior.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "createdAt",
            "in": "query",
            "description": "The date-time when the conversion was created. Must be in the past. Uses RFC 3339 formatting (e.g. \"2036-07-21T17:32:28Z\"). If not provided, the current time-stamp will be used.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.CreateConversionResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion V1"
        ]
      },
      "post": {
        "operationId": "ConversionService_CreateConversion",
        "summary": "Create conversion",
        "description": "Create a new conversion in the system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking.v1.CreateConversionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.CreateConversionResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion V1"
        ]
      }
    },
    "/tracking/conversion/v1/update": {
      "get": {
        "operationId": "ConversionService_UpdateConversion2",
        "summary": "Update conversion",
        "description": "Update selected properties of a conversion.",
        "parameters": [
          {
            "name": "identifier.id",
            "in": "query",
            "description": "ID of the conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier.external.revenueOriginId",
            "in": "query",
            "description": "Revenue origin associated with the conversion. You can find this information in your unique trackdesk identifiers in the Settings.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier.external.externalId",
            "in": "query",
            "description": "External ID associated with the conversion.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier.external.conversionTypeCode",
            "in": "query",
            "description": "Code of the conversion type.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of the conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "CONVERSION_STATUS_UNSPECIFIED",
              "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"
              ]
            }
          },
          {
            "name": "revenue.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cost.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversionAmount.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalId",
            "in": "query",
            "description": "External ID is used for deduplication of conversions. No other conversion can be created with the same External ID. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer ID, your specific custom identifier. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAdvParams.advS1",
            "in": "query",
            "description": "Custom adv S1 parameter assigned to a conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAdvParams.advS2",
            "in": "query",
            "description": "Custom adv S2 parameter assigned to a conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAdvParams.advS3",
            "in": "query",
            "description": "Custom adv S3 parameter assigned to a conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAdvParams.advS4",
            "in": "query",
            "description": "Custom adv S4 parameter assigned to a conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAdvParams.advS5",
            "in": "query",
            "description": "Custom adv S5 parameter assigned to a conversion. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAffParams.affS1",
            "in": "query",
            "description": "Custom aff S1 parameter assigned to a conversion source. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAffParams.affS2",
            "in": "query",
            "description": "Custom aff S2 parameter assigned to a conversion source. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAffParams.affS3",
            "in": "query",
            "description": "Custom aff S3 parameter assigned to a conversion source. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAffParams.affS4",
            "in": "query",
            "description": "Custom aff S4 parameter assigned to a conversion source. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customAffParams.affS5",
            "in": "query",
            "description": "Custom aff S5 parameter assigned to a conversion source. Won't be changed if not filled.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.UpdateConversionResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion V1"
        ]
      },
      "post": {
        "operationId": "ConversionService_UpdateConversion",
        "summary": "Update conversion",
        "description": "Update selected properties of a conversion.",
        "requestBody": {
          "description": "Update conversion.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking.v1.UpdateConversionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.UpdateConversionResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion V1"
        ]
      }
    },
    "/api/node/conversions/v1/update-status-by-external-id": {
      "post": {
        "operationId": "ConversionStatusesByExternalIdService_UpdateConversionStatusByExternalId",
        "summary": "Change conversion status by External ID",
        "description": "Update the status of conversions by matching with external ID (see [Conversion sources](#tag--tracking.v1.ConversionSourceService) for more details).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/conversions.v1.UpdateConversionStatusByExternalIdRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/conversions.v1.UpdateConversionStatusByExternalIdResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Conversions Statuses By External Id V1"
        ]
      }
    },
    "/api/node/conversions/v1/{id}/status": {
      "put": {
        "operationId": "ConversionsService_SetConversionStatus",
        "summary": "Set conversion status",
        "description": "Change the status of an already existing conversion.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Conversion's unique identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/conversions.v1.ConversionsService.SetConversionStatusBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/conversions.v1.SetConversionStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Conversions V1"
        ]
      }
    },
    "/api/reports/country-overview-report/v1": {
      "post": {
        "operationId": "ReportsService_CountryOverviewReport",
        "summary": "Country overview",
        "description": "Deprecated: Displays performance data grouped by specific countries.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.CountryOverviewReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/tracking/coupon/v1/redeem": {
      "post": {
        "operationId": "CouponRedemptionService_RedeemCoupon",
        "summary": "Redeem coupon",
        "description": "Looks up the affiliate associated with any of the provided coupon codes and returns a coupon redemption identifier (CID) for conversion attribution.",
        "requestBody": {
          "description": "Redeem a coupon and obtain a coupon redemption identifier for conversion attribution.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking.v1.RedeemCouponRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.RedeemCouponResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Coupon Redemption V1"
        ]
      }
    },
    "/api/node/coupons/v1": {
      "post": {
        "operationId": "CouponsService_CreateCoupon",
        "summary": "Create a new coupon.",
        "description": "Creates a new coupon in the system.",
        "requestBody": {
          "description": "Create a new coupon in the system.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/coupons.v1.CreateCouponRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons.v1.CreateCouponResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Coupons V1"
        ]
      }
    },
    "/api/node/coupons/v1/list": {
      "post": {
        "operationId": "CouponsService_ListCoupons",
        "summary": "List coupons",
        "description": "Returns a list of all existing coupons in the system.",
        "requestBody": {
          "description": "Generate a list of existing coupons.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/coupons.v1.ListCouponsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Coupons V1"
        ]
      }
    },
    "/api/node/coupons/v1/{id}": {
      "delete": {
        "operationId": "CouponsService_DeleteCoupon",
        "summary": "Delete coupon",
        "description": "Delete an existing coupon from the system.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of the coupon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/coupons.v1.DeleteCouponResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Coupons V1"
        ]
      }
    },
    "/api/reports/daily-overview-report/v1": {
      "post": {
        "operationId": "ReportsService_DailyOverviewReport",
        "summary": "Daily overview report",
        "description": "Features overview of the daily performance, providing data such as clicks, conversions, revenue, payouts etc. per given day.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.DailyOverviewReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/tracking/external-cid/v1": {
      "post": {
        "operationId": "ConversionSourceService_SetExternalCid",
        "summary": "Set external CID",
        "description": "Adds external click identifier to a conversion.",
        "requestBody": {
          "description": "Add external CID to a conversion.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking.v1.SetExternalCidRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking.v1.SetExternalCidResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Conversion Source V1"
        ]
      }
    },
    "/api/reports/general-overview-report/v1": {
      "post": {
        "operationId": "ReportsService_GeneralOverviewReport",
        "summary": "General overview",
        "description": "Provides a comprehensive performance overview with data aggregated at multiple levels\n(such as daily, country, affiliate, offer, etc.).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/api/reports/offer-overview-report/v1": {
      "post": {
        "operationId": "ReportsService_OfferOverviewReport",
        "summary": "Offer overview",
        "description": "Deprecated: Shows performance overview grouped by individual offers.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reports.v1.OfferOverviewReportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Reports V1"
        ]
      }
    },
    "/api/node/offers/v1": {
      "post": {
        "operationId": "OffersService_CreateOffer",
        "summary": "Create offer",
        "description": "Creates an offer with the supplied configuration, pricing and landing pages, and publishes it.\nAll landing pages must use the same link type (either all direct or all redirect). By default the\noffer is published immediately; set `publish_at` to schedule it to go live at a future time instead.\nReturns the created offer together with its pricing and landing pages.",
        "requestBody": {
          "description": "Request to create and publish a complete offer.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.CreateOfferRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.CreateOfferResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers V1"
        ]
      }
    },
    "/api/node/offers/v1/landing-pages/{id}": {
      "put": {
        "operationId": "LandingPagesService_UpdateLandingPage",
        "summary": "Update landing page",
        "description": "Updates an existing landing page. The link type provided must match the landing page's existing link type.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Landing page identifier (UUID) to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.LandingPagesService.UpdateLandingPageBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.UpdateLandingPageResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Landing Pages V1"
        ]
      }
    },
    "/api/node/offers/v1/list": {
      "post": {
        "operationId": "OffersService_ListOffers",
        "summary": "List offers",
        "description": "Lists offers matching the given filters, each returned together with its pricing and landing pages,\nin the same shape returned by create.",
        "requestBody": {
          "description": "Request to list offers matching the given filters, each returned with its pricing and landing pages.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.ListOffersRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.ListOffersResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers V1"
        ]
      }
    },
    "/api/node/offers/v1/{id}": {
      "get": {
        "operationId": "OffersService_GetOffer",
        "summary": "Get offer",
        "description": "Retrieves an offer together with its pricing and landing pages, in the same shape returned by create.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Offer identifier (UUID) to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.GetOfferResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers V1"
        ]
      }
    },
    "/api/node/offers/v1/{id}/data": {
      "put": {
        "operationId": "OffersService_UpdateOffer",
        "summary": "Update offer",
        "description": "Updates the offer's general settings (name, visibility, targeting, tags, description, ...) and its\nstatus. Provide the full new settings; the offer's pricing and landing pages are left untouched and\nare updated through their own endpoints. Returns the updated offer.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier (UUID) of the offer to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.OffersService.UpdateOfferBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.UpdateOfferResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers V1"
        ]
      }
    },
    "/api/node/offers/v1/{id}/pricing": {
      "put": {
        "operationId": "OffersService_UpdateOfferPricing",
        "summary": "Update offer pricing",
        "description": "Updates the pricing settings of the offer (conversion type settings and targeting groups). Returns the\nupdated pricing.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier (UUID) of the offer whose pricing is updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.OffersService.UpdateOfferPricingBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.UpdateOfferPricingResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers V1"
        ]
      }
    },
    "/api/node/offers/v1/{offerId}/affiliates/sources": {
      "post": {
        "operationId": "OfferAffiliatesService_SetAffiliatesAccessToOffer",
        "summary": "Set affiliate access to offer",
        "description": "Sets the access level (allowed or forbidden) of one or more affiliate sources on the offer, creating an\nassignment for sources that are not yet assigned and updating the access level of those that already are.\nReturns the resulting assignments.",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) the sources are being assigned to.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.OfferAffiliatesService.SetAffiliatesAccessToOfferBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.SetAffiliatesAccessToOfferResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Affiliates V1"
        ]
      }
    },
    "/api/node/offers/v1/{offerId}/affiliates/sources/list": {
      "post": {
        "operationId": "OfferAffiliatesService_ListAffiliateAssignmentsToOffer",
        "summary": "List affiliates assignments to offer",
        "description": "Lists the affiliate assignments to the offer, each together with its access level, assignment time\nand any pending application details.",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) whose assignments are listed.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.OfferAffiliatesService.ListAffiliateAssignmentsToOfferBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.ListAffiliateAssignmentsToOfferResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Affiliates V1"
        ]
      }
    },
    "/api/node/offers/v1/{offerId}/landing-pages": {
      "post": {
        "operationId": "LandingPagesService_CreateLandingPages",
        "summary": "Create landing pages",
        "description": "Creates one or more landing pages for an offer. Each landing page declares either a direct or redirect tracking\nlink. All landing pages in a single request must use the same link type.",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) the landing pages are being created for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.LandingPagesService.CreateLandingPagesBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.CreateLandingPagesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Landing Pages V1"
        ]
      }
    },
    "/api/node/offers/v1/{offerId}/landing-pages/list": {
      "post": {
        "operationId": "LandingPagesService_ListLandingPages",
        "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.",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) whose landing pages are listed.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.LandingPagesService.ListLandingPagesBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Landing Pages V1"
        ]
      }
    },
    "/api/node/offers/v1/{offerId}/landing-pages/prioritize": {
      "put": {
        "operationId": "LandingPagesService_PrioritizeLandingPages",
        "summary": "Prioritize landing pages",
        "description": "Sets the priority order used to pick which redirect landing page an offer serves to a visitor.\n\nWhen a redirect tracking link is clicked, the offer's redirect landing pages are matched against the visitor's\nlocation, language, device and operating system. Among the pages whose targeting rules match, the one appearing\nearliest in `ordered_landing_page_ids` is chosen as the single redirect destination — earlier position means\nhigher priority. Landing pages omitted from the list rank below every listed page.\n\nFor this reason, order landing pages from the most specific targeting rules to the most general, so a broad\ncatch-all page cannot win ahead of a more specific page that also matches the visitor.\n\nOnly redirect landing pages use this ordering; direct landing pages are unaffected.",
        "parameters": [
          {
            "name": "offerId",
            "in": "path",
            "description": "Offer identifier (UUID) whose landing pages are being reordered.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/offers.v1.LandingPagesService.PrioritizeLandingPagesBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offers.v1.PrioritizeLandingPagesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Offers Landing Pages V1"
        ]
      }
    },
    "/api/node/payment-method-types/v1/supported": {
      "get": {
        "operationId": "PaymentMethodTypesService_ListSupportedPaymentMethodTypes",
        "summary": "List supported payment method types",
        "description": "Returns all payment method types enabled in the system along with their supported currencies.",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/payment_methods.v1.ListSupportedPaymentMethodTypesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Payment Methods Payment Method Types V1"
        ]
      }
    },
    "/api/node/payment-methods/v1": {
      "post": {
        "operationId": "PaymentMethodService_CreatePaymentMethod",
        "summary": "Create a new payment method",
        "description": "Creates a new payment method for the affiliate account.\nOnce created, it can be set as a default payment method using `SetPaymentMethodAccountDefault` endpoint.",
        "requestBody": {
          "description": "Create a new payment method.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/payment_methods.v1.CreatePaymentMethodRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Payment Methods Payment Method V1"
        ]
      }
    },
    "/api/node/payment-methods/v1/{id}": {
      "patch": {
        "operationId": "PaymentMethodService_UpdatePaymentMethod",
        "summary": "Update payment method",
        "description": "Updates the data for selected payment method.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Payment method identification.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodService.UpdatePaymentMethodBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Payment Methods Payment Method V1"
        ]
      }
    },
    "/api/node/revenue-origin-billing/v1/claim-balances": {
      "post": {
        "operationId": "ClaimService_ClaimBalances",
        "summary": "Create advertiser settlement",
        "description": "Generates a settlement for specific advertiser.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/revenue_origin_billing.v1.ClaimBalancesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origin_billing.v1.ClaimBalancesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origin Billing Claim V1"
        ]
      }
    },
    "/api/node/revenue-origin-billing/v1/claims": {
      "get": {
        "operationId": "ClaimService_ListClaims",
        "summary": "List advertiser settlements",
        "description": "Provides a list of existing advertiser settlements.",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "timeRange.from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeRange.to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origin_billing.v1.ListClaimsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origin Billing Claim V1"
        ]
      }
    },
    "/api/node/revenue-origin-billing/v1/claims/{id}": {
      "get": {
        "operationId": "ClaimService_GetClaim",
        "summary": "Get advertiser settlement",
        "description": "Provides details of specific advertiser settlement details.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Advertiser settlement ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origin_billing.v1.GetClaimResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origin Billing Claim V1"
        ]
      },
      "delete": {
        "operationId": "ClaimService_DeleteClaim",
        "summary": "Delete advertiser settlement",
        "description": "Deletes the selected advertiser settlement.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Advertiser settlement ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origin_billing.v1.DeleteClaimResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origin Billing Claim V1"
        ]
      }
    },
    "/api/node/revenue-origin-billing/v1/open-balances": {
      "get": {
        "operationId": "RevenueOriginBalanceService_ListRevenueOriginOpenBalances",
        "summary": "Advertiser open balance",
        "description": "Get information about current open balance per individual advertiser.",
        "parameters": [
          {
            "name": "pagination.limit",
            "in": "query",
            "description": "Maximum number of items to return (1-500).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pagination.offset",
            "in": "query",
            "description": "Number of items to skip from the start of the result set.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "filter.until",
            "in": "query",
            "description": "Include balances up to this date.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "filter.minAmount.value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter.revenueOriginTagIds",
            "in": "query",
            "description": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs assigned (OR semantics).",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origin Billing Revenue Origin Balance V1"
        ]
      }
    },
    "/api/node/revenue-origins/v1": {
      "post": {
        "operationId": "RevenueOriginsService_CreateRevenueOrigin",
        "summary": "Create new advertiser",
        "description": "Creates a new advertiser in your system.",
        "requestBody": {
          "description": "Create advertiser.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/revenue_origins.v1.CreateRevenueOriginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origins.v1.CreateRevenueOriginResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origins Revenue Origins V1"
        ]
      }
    },
    "/api/node/revenue-origins/v1/list": {
      "post": {
        "operationId": "RevenueOriginsService_ListRevenueOrigins",
        "summary": "List advertisers",
        "description": "List the existing advertisers in your system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/revenue_origins.v1.ListRevenueOriginsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origins.v1.ListRevenueOriginsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origins Revenue Origins V1"
        ]
      }
    },
    "/api/node/revenue-origins/v1/{id}": {
      "patch": {
        "operationId": "RevenueOriginsService_UpdateRevenueOrigin",
        "summary": "Update advertiser",
        "description": "Update the advertiser in your system.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the advertiser.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/revenue_origins.v1.RevenueOriginsService.UpdateRevenueOriginBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revenue_origins.v1.UpdateRevenueOriginResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Revenue Origins Revenue Origins V1"
        ]
      }
    },
    "/api/node/tags/v1": {
      "get": {
        "operationId": "TagsService_ListTags",
        "summary": "List tags",
        "description": "Lists all tags in the system.",
        "responses": {
          "200": {
            "description": "A successful response.",
            "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"
                }
              }
            }
          }
        },
        "tags": [
          "Tags V1"
        ]
      },
      "post": {
        "operationId": "TagsService_CreateTag",
        "summary": "Create new tag",
        "description": "Creates a new tag in the system.",
        "requestBody": {
          "description": "Create a new tag.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tags.v1.CreateTagRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags.v1.CreateTagResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tags V1"
        ]
      }
    },
    "/api/node/tags/v1/{id}": {
      "get": {
        "operationId": "TagsService_GetTag",
        "summary": "Get tag details",
        "description": "Provides details of existing tag in the system.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Tag identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags.v1.GetTagResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tags V1"
        ]
      },
      "delete": {
        "operationId": "TagsService_DeleteTag",
        "summary": "Delete tag",
        "description": "Deletes a tag from the system.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Tag identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tags.v1.DeleteTagResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tags V1"
        ]
      }
    },
    "/api/node/tiers/v1": {
      "get": {
        "operationId": "TiersService_ListTiers",
        "summary": "List affiliate tiers",
        "description": "Returns a list of active affiliate tiers and their associated payout rates.",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tiers.v1.ListTiersResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tiers V1"
        ]
      },
      "post": {
        "operationId": "TiersService_CreateTier",
        "summary": "Create affiliate tier",
        "description": "Creates a new affiliate tier in the system.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tiers.v1.CreateTierRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tiers.v1.CreateTierResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tiers V1"
        ]
      }
    },
    "/api/node/tiers/v1/{id}": {
      "get": {
        "operationId": "TiersService_GetTier",
        "summary": "Affiliate tier detail",
        "description": "Returns the detail of specific affiliate tier with the payout rates.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier of the affiliate tier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tiers.v1.GetTierResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tiers V1"
        ]
      },
      "delete": {
        "operationId": "TiersService_DeleteTier",
        "summary": "Delete affiliate tier",
        "description": "Deletes a specific affiliate tier. A tier cannot be deleted if affiliates are still assigned to it. Default tier cannot be deleted.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the tier to be deleted.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tiers.v1.DeleteTierResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tiers V1"
        ]
      },
      "patch": {
        "operationId": "TiersService_UpdateTier",
        "summary": "Update affiliate tier",
        "description": "Updates the values of selected affiliate tier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the tier to be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tiers.v1.TiersService.UpdateTierBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tiers.v1.UpdateTierResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tiers V1"
        ]
      }
    },
    "/api/node/tipalti-payments/v1/settlements/{settlementId}/list-payable-account-settlements": {
      "get": {
        "operationId": "TipaltiPaymentsService_ListPayableAccountSettlements",
        "summary": "List payable account settlements of a settlement",
        "description": "Retrieve list of payable and unpaid account settlements via Tipalti.",
        "parameters": [
          {
            "name": "settlementId",
            "in": "path",
            "description": "Unique ID of a settlement",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tipalti.v1.ListPayableAccountSettlementsResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tipalti Payments V1"
        ]
      }
    },
    "/api/node/tipalti-payments/v1/settlements/{settlementId}/payment-batch": {
      "post": {
        "operationId": "TipaltiPaymentsService_CreatePaymentBatch",
        "summary": "Create Tipalti payment batch",
        "description": "Sends new payment batch to Tipalti system for specified settlement.\n\nAccount settlements of the specified settlement are included in the payment batch only if it has Tipalti payment method, is still unpaid and\nTipalti payee corresponding to the account settlement's affiliate is in payable state.",
        "parameters": [
          {
            "name": "settlementId",
            "in": "path",
            "description": "Unique ID of a settlement",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tipalti.v1.CreatePaymentBatchResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tipalti Payments V1"
        ]
      }
    },
    "/api/node/tipalti-payments/v1/settlements/{settlementId}/payment-batch/status": {
      "post": {
        "operationId": "TipaltiPaymentsService_CheckPaymentBatchStatus",
        "summary": "Check payment batch status",
        "description": "Checks status of a specific Tipalti payment batch of given settlement and refreshes the payment data of the settlement.\nThis should be used only if there is need to manually synchronize payment data with new state in Tipalti system.\n\nYou can then see the refreshed data in SettlementService.GetSettlement endpoint.",
        "parameters": [
          {
            "name": "settlementId",
            "in": "path",
            "description": "Unique ID of a settlement",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tipalti.v1.TipaltiPaymentsService.CheckPaymentBatchStatusBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tipalti.v1.CheckPaymentBatchStatusResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tipalti Payments V1"
        ]
      }
    },
    "/api/node/tracking-links/v1/build": {
      "post": {
        "operationId": "TrackingLinksService_BuildTrackingLink",
        "summary": "Build a tracking link",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tracking_links.v1.BuildTrackingLinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tracking_links.v1.BuildTrackingLinkResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Tracking Links Tracking Links V1"
        ]
      }
    },
    "/api/node/webhooks/v1": {
      "get": {
        "operationId": "WebhooksService_ListWebhooks",
        "summary": "List active webhooks",
        "description": "Returns a list of currently active webhooks.",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhooks.v1.ListWebhooksResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Webhooks V1"
        ]
      },
      "post": {
        "operationId": "WebhooksService_CreateWebhook",
        "summary": "Create a new webhook",
        "description": "Creates new webhooks in the system.",
        "requestBody": {
          "description": "Create a new webhook.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.v1.CreateWebhookRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhooks.v1.CreateWebhookResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Webhooks V1"
        ]
      }
    },
    "/api/node/webhooks/v1/test": {
      "post": {
        "operationId": "WebhooksService_SendWebhook",
        "summary": "Test webhook response",
        "description": "Triggers specific webhook to test functionality and sent data.",
        "requestBody": {
          "description": "Request a test ping for existing webhook.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.v1.SendWebhookRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhooks.v1.SendWebhookResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Webhooks V1"
        ]
      }
    },
    "/api/node/webhooks/v1/{id}": {
      "delete": {
        "operationId": "WebhooksService_DeleteWebhook",
        "summary": "Delete webhook",
        "description": "Deletes a specific webhook from the system.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique identifier of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/webhooks.v1.DeleteWebhookResponse"
                }
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/google.rpc.Status"
                }
              }
            }
          }
        },
        "tags": [
          "Webhooks V1"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "account_notes.v1.CreateAccountNoteRequest": {
        "description": "Request to create a new note for an affiliate account.",
        "type": "object",
        "properties": {
          "accountId": {
            "description": "Affiliate account UUID the note belongs to.",
            "type": "string"
          },
          "note": {
            "description": "The note text (1-255 characters).",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "note"
        ]
      },
      "account_notes.v1.CreateAccountNoteResponse": {
        "description": "Empty response when note is created successfully.",
        "type": "object"
      },
      "account_notes.v1.DeleteAccountNoteResponse": {
        "description": "Empty response when note is deleted successfully.",
        "type": "object"
      },
      "account_notes.v1.ListAccountNotesForAccountResponse": {
        "description": "Response containing notes for an affiliate account.",
        "type": "object",
        "properties": {
          "accountNotes": {
            "description": "Notes for the requested account.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/account_notes.v1.ListAccountNotesForAccountResponse.AccountNote"
            }
          }
        },
        "required": [
          "accountNotes"
        ]
      },
      "account_notes.v1.ListAccountNotesForAccountResponse.AccountNote": {
        "description": "A single account note entry.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Note UUID.",
            "type": "string"
          },
          "author": {
            "$ref": "#/components/schemas/account_notes.v1.ListAccountNotesForAccountResponse.Author"
          },
          "note": {
            "description": "Note text.",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the note was created (UTC).",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "author",
          "note",
          "createdAt"
        ]
      },
      "account_notes.v1.ListAccountNotesForAccountResponse.Author": {
        "description": "Author of a note (the user creating the note).",
        "type": "object",
        "properties": {
          "accountId": {
            "description": "Author's account id (internal user account identifier).",
            "type": "string"
          },
          "name": {
            "description": "Author's display name.",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "name"
        ]
      },
      "affiliates.v1.Affiliate": {
        "type": "object",
        "properties": {
          "registeredAt": {
            "description": "Timestamp of the date of affiliate's registration.",
            "type": "string",
            "format": "date-time"
          },
          "publicId": {
            "description": "Public ID of the affiliate.",
            "type": "string"
          },
          "email": {
            "description": "Email of the affiliate.",
            "type": "string"
          },
          "name": {
            "description": "Full name of the affiliate.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          },
          "tierId": {
            "description": "Identifier of the current tier to which the affiliate is assigned.",
            "type": "string"
          },
          "tierName": {
            "description": "Name of the tier to which the affiliate is assigned.",
            "type": "string"
          },
          "registrationCountryCode": {
            "description": "Country from which the original affiliate registration came in. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "string"
          },
          "accountId": {
            "description": "Identifier of the account of the affiliate, useful for getting information about billing details and other information.",
            "type": "string"
          },
          "sourceId": {
            "description": "Traffic source ID.",
            "type": "string"
          },
          "sourceStatus": {
            "$ref": "#/components/schemas/enums.v1.SourceStatus"
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicion"
          },
          "ipAddress": {
            "description": "IP address from which the original registration came through.",
            "type": "string"
          },
          "referralAccount": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate.ReferralAccount"
          },
          "defaultRedirectDomain": {
            "description": "Default redirect domain for affiliate.",
            "type": "string"
          },
          "managerAccount": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate.ManagerAccount"
          },
          "registrationData": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
          },
          "tagIds": {
            "description": "Tag IDs assigned to the affiliate.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "protected": {
            "description": "Affiliate is protected and cannot be modified.",
            "type": "boolean"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/billing_details.v1.BillingDetail"
          },
          "paymentMethods": {
            "description": "Payment methods of the affiliate.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
            }
          }
        },
        "required": [
          "protected"
        ],
        "title": "Affiliate"
      },
      "affiliates.v1.Affiliate.ManagerAccount": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the manager.",
            "type": "string"
          },
          "name": {
            "description": "Full name of the manager.",
            "type": "string"
          },
          "assignedAt": {
            "description": "Timestamp of the date when the affiliate was assigned to the manager.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "affiliates.v1.Affiliate.ReferralAccount": {
        "description": "Referral account is the affiliate's unique identifier used throughout the system.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the affiliate.",
            "type": "string"
          },
          "name": {
            "description": "Full name of the affiliate.",
            "type": "string"
          }
        }
      },
      "affiliates.v1.AffiliateRegistrationData": {
        "type": "object",
        "properties": {
          "telephone": {
            "type": "string"
          },
          "messenger": {
            "$ref": "#/components/schemas/types.v1.Messenger"
          },
          "websiteUrl": {
            "type": "string"
          },
          "promotionChannels": {
            "type": "string"
          },
          "audience": {
            "type": "string"
          },
          "currentTraffic": {
            "type": "string"
          },
          "expectedTraffic": {
            "type": "string"
          },
          "affiliateType": {
            "type": "string"
          },
          "previousExperience": {
            "type": "string"
          },
          "customQuestionAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer"
            }
          }
        }
      },
      "affiliates.v1.AffiliateService.CreateAffiliateRegistrationDataBody": {
        "description": "Create affiliate registration data.",
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
          }
        },
        "required": [
          "data"
        ]
      },
      "affiliates.v1.AffiliateService.SetAffiliateStatusBody": {
        "description": "Set affiliate status.",
        "type": "object",
        "properties": {
          "sourcePublicId": {
            "description": "Traffic source public ID.",
            "type": "object",
            "title": "Traffic source public ID."
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          },
          "rejection": {
            "$ref": "#/components/schemas/affiliates.v1.SetAffiliateStatusRequest.Rejection"
          }
        },
        "required": [
          "sourcePublicId",
          "status"
        ]
      },
      "affiliates.v1.AffiliateService.SetAffiliateTierBody": {
        "description": "Set affiliate tier.",
        "type": "object",
        "properties": {
          "sourcePublicId": {
            "description": "Public ID of affiliate to be updated.",
            "type": "object",
            "title": "Public ID of affiliate to be updated."
          },
          "tierId": {
            "description": "Identifier of the new tier to be applied to the affiliate.",
            "type": "string"
          }
        },
        "required": [
          "sourcePublicId",
          "tierId"
        ]
      },
      "affiliates.v1.AffiliatesFilters": {
        "description": "Filters available for affiliates.",
        "type": "object",
        "properties": {
          "registeredFrom": {
            "description": "Timestamp of the date of affiliate's registration, start date of filtered results.",
            "type": "string",
            "format": "date-time"
          },
          "registeredTo": {
            "description": "Timestamp of the date of affiliate's registration, end date of filtered results.",
            "type": "string",
            "format": "date-time"
          },
          "publicIds": {
            "description": "Public ID's of affiliates to be filtered.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "description": "Emails of the affiliates to be filtered.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "description": "Name of affiliates to be filtered.",
            "type": "string"
          },
          "statuses": {
            "description": "Specific affiliate statuses to be filtered.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.AccountStatus"
            }
          },
          "tierIds": {
            "description": "Specific tiers in which affiliates are present.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "registrationCountryCodes": {
            "description": "Country codes of affiliates to be filtered. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sourceStatuses": {
            "description": "Traffic source status.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.SourceStatus"
            }
          },
          "referralAccountIds": {
            "description": "Parent affiliate.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicionFilter"
          },
          "managerAccountIds": {
            "description": "Filters affiliates assigned to specific managers.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "assignedToManager": {
            "description": "Filters affiliates assigned to any manager.",
            "type": "boolean"
          },
          "accountIds": {
            "description": "Filters affiliates by specific account IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tagIds": {
            "description": "Filters affiliates by specific tag IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "hasBillingDetail": {
            "description": "Filters affiliates by presence of billing details.",
            "type": "boolean"
          },
          "hasPaymentMethod": {
            "description": "Filters affiliates by presence of any payment method.",
            "type": "boolean"
          },
          "paymentMethodTypes": {
            "description": "Filters affiliates who have a payment method of any of the specified types.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
            }
          }
        }
      },
      "affiliates.v1.CreateAffiliateRegistrationDataResponse": {
        "description": "Created registration data of the affiliate.",
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
          }
        },
        "required": [
          "data"
        ]
      },
      "affiliates.v1.DeleteAffiliateResponse": {
        "description": "Deletion request response.",
        "type": "object"
      },
      "affiliates.v1.GetAffiliateRegistrationDataResponse": {
        "description": "Registration data of requested affiliate.",
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
          }
        }
      },
      "affiliates.v1.GetAffiliateResponse": {
        "description": "Details of the requested affiliate.",
        "type": "object",
        "properties": {
          "affiliate": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate"
          }
        }
      },
      "affiliates.v1.ListAffiliatesRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.OptionalPaginationParams"
          },
          "filters": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliatesFilters"
          }
        },
        "title": "List affiliates in the system"
      },
      "affiliates.v1.ListAffiliatesResponse": {
        "type": "object",
        "properties": {
          "affiliates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/affiliates.v1.Affiliate"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ],
        "title": "List of affiliates matching the pagination and filters"
      },
      "affiliates.v1.RegisterAffiliateWithUserRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "Affiliate's email"
          },
          "password": {
            "description": "Password to be set for the affiliate by default.",
            "type": "string"
          },
          "name": {
            "description": "Full name of the affiliate.",
            "type": "string"
          },
          "publicId": {
            "$ref": "#/components/schemas/types.v1.SourcePublicId"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          },
          "referralAccountId": {
            "description": "Account ID of parent affiliate. If filled, then affiliate will have the specified user added as their MLM parent.",
            "type": "string"
          },
          "shouldSendWelcomeEmail": {
            "description": "Designates if a welcome mail with login link should be sent to the affiliate on creation.",
            "type": "boolean"
          },
          "registrationCountryCode": {
            "description": "Country from which the original affiliate registration came in. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "string"
          }
        },
        "title": "Create new affiliate"
      },
      "affiliates.v1.RegisterAffiliateWithUserResponse": {
        "description": "Feedback message about the creation of a new affiliate.",
        "type": "object"
      },
      "affiliates.v1.SetAffiliateStatusRequest.Rejection": {
        "description": "Rejection-specific details. Only honored when rejecting a pending affiliate registration\n(transitioning from Pending to Disabled); ignored for any other status transition.",
        "type": "object",
        "properties": {
          "reason": {
            "description": "Optional rejection reason. Saved with the decision and injected into the rejection email\ntemplate as {rejectionReason} when non-empty.",
            "type": "string"
          },
          "sendEmail": {
            "description": "Whether to send the rejection email to the affiliate.",
            "type": "boolean"
          }
        },
        "required": [
          "sendEmail"
        ]
      },
      "affiliates.v1.SetAffiliateStatusResponse": {
        "description": "Feedback message about new status assignment.",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          }
        },
        "required": [
          "status"
        ]
      },
      "affiliates.v1.SetAffiliateTierResponse": {
        "description": "Feedback message about assigning of a different affiliate tier.",
        "type": "object",
        "properties": {
          "tierId": {
            "type": "string"
          }
        }
      },
      "billing.v1.AccountSettlement": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the account settlement.",
            "type": "string"
          },
          "accountId": {
            "description": "Unique ID of an account associated with the settlement.",
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "accountName": {
            "description": "Name of the account.",
            "type": "string"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/billing.v1.AccountSettlement.BillingDetail"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentMethod"
          },
          "createdAt": {
            "description": "Creation timestamp.",
            "type": "string",
            "format": "date-time"
          },
          "originalCurrencyAmounts": {
            "description": "List of amounts in original currencies.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.Amount"
            }
          },
          "tenantBillingDetail": {
            "$ref": "#/components/schemas/settings.v1.BillingDetail"
          },
          "settledUntil": {
            "description": "Time until which all yet unsettled items were included into the settlement.",
            "type": "string",
            "format": "date-time"
          },
          "paymentData": {
            "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData"
          },
          "confirmo": {
            "$ref": "#/components/schemas/billing.v1.AccountSettlement.Confirmo"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountSettlementStatus"
          },
          "recoverable": {
            "description": "Indicates when the settlement is in a Tipalti error state an admin can recover (cancel to open\nbalance or settle manually/externally).",
            "type": "boolean"
          },
          "adjustable": {
            "description": "Indicates whether the settled amount can still be adjusted. Only true while the settlement is\nnew (not yet paid, and for Tipalti not yet sent via \"Pay via Tipalti\").",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "accountId",
          "amount",
          "currency",
          "accountName",
          "billingDetail",
          "paymentMethod",
          "createdAt",
          "originalCurrencyAmounts",
          "tenantBillingDetail",
          "settledUntil",
          "status",
          "recoverable",
          "adjustable"
        ]
      },
      "billing.v1.AccountSettlement.Amount": {
        "description": "Amount contains details about the settlement amount.",
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "exchangeRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "exchangedAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "earningType": {
            "$ref": "#/components/schemas/enums.v1.EarningType"
          }
        },
        "required": [
          "amount",
          "currency",
          "exchangedAmount",
          "earningType"
        ]
      },
      "billing.v1.AccountSettlement.BillingDetail": {
        "description": "BillingDetail contains billing-related information.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name associated with the billing detail.",
            "type": "string"
          },
          "addressLine1": {
            "description": "First line of the address.",
            "type": "string"
          },
          "city": {
            "description": "City of the address.",
            "type": "string"
          },
          "countryCode": {
            "description": "Country code of the address.",
            "type": "string"
          },
          "postalCode": {
            "description": "Postal code of the address.",
            "type": "string"
          },
          "addressLine2": {
            "description": "Second line of the address (optional).",
            "type": "string"
          },
          "invoicingEmail": {
            "description": "Invoicing email (optional).",
            "type": "string"
          },
          "vat": {
            "description": "VAT number (optional).",
            "type": "string"
          }
        }
      },
      "billing.v1.AccountSettlement.Confirmo": {
        "type": "object",
        "properties": {
          "exportable": {
            "type": "boolean"
          },
          "unexportableReason": {
            "$ref": "#/components/schemas/enums.v1.ConfirmoUnexportableReason"
          }
        },
        "required": [
          "exportable",
          "unexportableReason"
        ]
      },
      "billing.v1.AccountSettlement.PaymentData": {
        "description": "PaymentData contains payment-related information.",
        "type": "object",
        "properties": {
          "tipalti": {
            "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData"
          }
        }
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData": {
        "description": "TipaltiPaymentData holds details specific to Tipalti payments.",
        "type": "object",
        "properties": {
          "paymentInstructions": {
            "description": "List of payment instructions.\n\nEach instruction represents a payment attempt made by Tipalti system.\nFor more information about the containing data you can check the Tipalti documentation: https://documentation.tipalti.com/reference/get_api-v1-payment-batches-id-instructions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction"
            }
          }
        }
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "description": "Unique identifier for the payment batch.",
            "type": "string"
          },
          "payeeIsPayable": {
            "description": "Indicates if the payee is payable.",
            "type": "boolean"
          },
          "instructionStatus": {
            "description": "Status of the instruction.",
            "type": "string"
          },
          "paymentStatus": {
            "description": "Status of the payment.",
            "type": "string"
          },
          "errors": {
            "description": "List of errors in the payment instruction.\n\nProvides details on errors within a payment instruction as received from Tipalti.\nFor more information you can check Tipalti documentation: https://documentation.tipalti.com/reference/http-status-codes#api-error-object",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction.Error"
            }
          }
        }
      },
      "billing.v1.AccountSettlement.PaymentData.TipaltiPaymentData.PaymentInstruction.Error": {
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code.",
            "type": "string"
          },
          "message": {
            "description": "Error message.",
            "type": "string"
          },
          "docUrl": {
            "description": "Documentation URL.",
            "type": "string"
          },
          "type": {
            "description": "Type of error.",
            "type": "string"
          }
        }
      },
      "billing.v1.AccountSettlement.PaymentMethod": {
        "description": "PaymentMethod contains payment method details.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "currencyCode": {
            "description": "Currency code for the payment method.",
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
          }
        }
      },
      "billing.v1.CurrencyBalance": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "openBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "onHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "currency",
          "openBalance",
          "onHoldBalance"
        ]
      },
      "billing.v1.DeleteAccountSettlementResponse": {
        "type": "object"
      },
      "billing.v1.DeleteSettlementResponse": {
        "type": "object"
      },
      "billing.v1.GetBalancesForAccountResponse": {
        "type": "object",
        "properties": {
          "conversionOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionOnHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "commissionOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "commissionOnHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clientRevshareOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "openBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "onHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "settledBalance": {
            "description": "Settled balance amounts grouped by currency.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.GetBalancesForAccountResponse.SettledBalanceAmount"
            }
          },
          "defaultPaymentMethod": {
            "$ref": "#/components/schemas/billing.v1.PaymentMethodBalance"
          }
        },
        "required": [
          "conversionOpenBalance",
          "conversionOnHoldBalance",
          "commissionOpenBalance",
          "commissionOnHoldBalance",
          "clientRevshareOpenBalance",
          "openBalance",
          "onHoldBalance",
          "settledBalance"
        ]
      },
      "billing.v1.GetBalancesForAccountResponse.SettledBalanceAmount": {
        "description": "Settled balance amounts grouped by currency.",
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "billing.v1.GetSettlementResponse": {
        "type": "object",
        "properties": {
          "settlement": {
            "$ref": "#/components/schemas/billing.v1.Settlement"
          },
          "accountSettlements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement"
            },
            "title": "Details of account settlements of affiliates"
          }
        },
        "title": "Details of the requested settlement"
      },
      "billing.v1.ListAccountSettlementsResponse": {
        "type": "object",
        "properties": {
          "accountSettlements": {
            "description": "Individual affiliate settlements.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.AccountSettlement"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "billing.v1.ListOpenBalancesResponse": {
        "type": "object",
        "properties": {
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.ListOpenBalancesResponse.Balance"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "balances",
          "pagination"
        ]
      },
      "billing.v1.ListOpenBalancesResponse.Balance": {
        "type": "object",
        "properties": {
          "accountId": {
            "description": "ID of the affiliate to whom the open balance is credited.",
            "type": "string"
          },
          "name": {
            "description": "Name of the affiliate to whom the open balance is credited.",
            "type": "string"
          },
          "conversionOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionOnHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "commissionOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "commissionOnHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clientRevshareOpenBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "openBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "onHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "defaultPaymentMethod": {
            "$ref": "#/components/schemas/billing.v1.PaymentMethodBalance"
          },
          "hasBillingDetails": {
            "description": "Denotes if affiliate has filled their billing details.",
            "type": "boolean"
          },
          "openBalanceConversionCount": {
            "description": "Total count of approved conversions.",
            "type": "integer",
            "format": "int64"
          },
          "openBalanceConversionSourceCount": {
            "description": "Total count of unique conversion sources of approved conversions.",
            "type": "integer",
            "format": "int64"
          },
          "balancesByCurrency": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.CurrencyBalance"
            }
          }
        },
        "required": [
          "accountId",
          "name",
          "conversionOpenBalance",
          "conversionOnHoldBalance",
          "commissionOpenBalance",
          "commissionOnHoldBalance",
          "clientRevshareOpenBalance",
          "openBalance",
          "onHoldBalance",
          "defaultPaymentMethod",
          "hasBillingDetails",
          "openBalanceConversionCount",
          "openBalanceConversionSourceCount",
          "balancesByCurrency"
        ]
      },
      "billing.v1.ListSettlementsResponse": {
        "type": "object",
        "properties": {
          "settlements": {
            "description": "List all existing settlements.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.Settlement"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "billing.v1.OpenBalanceFilter": {
        "type": "object",
        "properties": {
          "until": {
            "description": "Day until which the settlement is settled.",
            "type": "string",
            "format": "date-time"
          },
          "minAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "defaultPaymentMethodTypes": {
            "description": "Payment methods used for the settlement.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
            }
          },
          "minConversionCount": {
            "description": "Minimum conversion count of open balance required for generation of affiliate settlement.",
            "type": "integer",
            "format": "int64"
          },
          "minConversionSourceCount": {
            "type": "integer",
            "format": "int64",
            "title": "Minimum conversion source count of open balance required for generation of affiliate settlement"
          },
          "tierIds": {
            "description": "Affiliate tiers of of settled affiliates.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affiliateTagIds": {
            "description": "Filter affiliates whose accounts have at least one of these tag IDs assigned (OR semantics).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offerTagIds": {
            "description": "Filter rows by offers having at least one of these tag IDs assigned (OR semantics).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revenueOriginTagIds": {
            "description": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs assigned (OR semantics).",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "billing.v1.PaymentMethodBalance": {
        "type": "object",
        "properties": {
          "paymentMethodType": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "paymentMethodCurrency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "openBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "paymentMethodType",
          "paymentMethodCurrency",
          "openBalance"
        ]
      },
      "billing.v1.SettleBalancesRequest": {
        "type": "object",
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/billing.v1.OpenBalanceFilter"
          },
          "accountIds": {
            "description": "Affiliate IDs for which to create settlement.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "note": {
            "description": "Optional note for created settlement.",
            "type": "string"
          }
        }
      },
      "billing.v1.SettleBalancesResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the settlement as a whole.",
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "until": {
            "description": "Settled until day.",
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "description": "Optional note for the settlements.",
            "type": "string"
          },
          "accountSettlements": {
            "description": "Individual affiliate settlements generated within the entire settlement.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.SettleBalancesResponse.AccountSettlement"
            }
          },
          "errors": {
            "description": "Error messages for individual affiliate settlements.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.SettleBalancesResponse.AccountSettlementError"
            }
          }
        }
      },
      "billing.v1.SettleBalancesResponse.AccountSettlement": {
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the settlement created for specific affiliate.",
            "type": "string"
          },
          "accountId": {
            "description": "ID of the affiliate for whom the settlement was created.",
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          }
        }
      },
      "billing.v1.SettleBalancesResponse.AccountSettlementError": {
        "type": "object",
        "properties": {
          "accountId": {
            "description": "ID of the affiliate.",
            "type": "string"
          },
          "error": {
            "description": "Error message generated by the system.",
            "type": "string"
          }
        }
      },
      "billing.v1.Settlement": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique identifier for the settlement.",
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "until": {
            "description": "Expiration time of the settlement.",
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "description": "Additional notes.",
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp.",
            "type": "string",
            "format": "date-time"
          },
          "tenantBillingDetail": {
            "$ref": "#/components/schemas/settings.v1.BillingDetail"
          },
          "paymentData": {
            "$ref": "#/components/schemas/billing.v1.Settlement.PaymentData"
          },
          "newAccountSettlementsCount": {
            "description": "Count of account settlements with status New.",
            "type": "integer",
            "format": "int64"
          },
          "inProgressAccountSettlementsCount": {
            "description": "Count of account settlements with status In Progress.",
            "type": "integer",
            "format": "int64"
          },
          "paidAccountSettlementsCount": {
            "description": "Count of account settlements with status Paid.",
            "type": "integer",
            "format": "int64"
          },
          "errorAccountSettlementsCount": {
            "description": "Count of account settlements with status Error.",
            "type": "integer",
            "format": "int64"
          },
          "accountSettlementAmounts": {
            "description": "Amounts of account corresponding settlement.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.Settlement.AccountSettlementAmount"
            }
          },
          "settledManuallyAccountSettlementsCount": {
            "description": "Count of account settlements with status Settled manually.",
            "type": "integer",
            "format": "int64"
          }
        },
        "required": [
          "newAccountSettlementsCount",
          "inProgressAccountSettlementsCount",
          "paidAccountSettlementsCount",
          "errorAccountSettlementsCount",
          "accountSettlementAmounts",
          "settledManuallyAccountSettlementsCount"
        ]
      },
      "billing.v1.Settlement.AccountSettlementAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "billing.v1.Settlement.PaymentData": {
        "description": "Payment data associated with the settlement.",
        "type": "object",
        "properties": {
          "tipalti": {
            "$ref": "#/components/schemas/billing.v1.Settlement.PaymentData.TipaltiPaymentData"
          }
        }
      },
      "billing.v1.Settlement.PaymentData.TipaltiPaymentData": {
        "description": "Tipalti payment data holds details specific to Tipalti payments.",
        "type": "object",
        "properties": {
          "paymentBatches": {
            "description": "List of payment batches.\n\nPaymentBatch represents a batch of payments sent to Tipalti system.\nFor more information about the containing data you can check the Tipalti documentation: https://documentation.tipalti.com/reference/get_api-v1-payment-batches-id",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.Settlement.PaymentData.TipaltiPaymentData.PaymentBatch"
            }
          }
        }
      },
      "billing.v1.Settlement.PaymentData.TipaltiPaymentData.PaymentBatch": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "description": "Unique identifier for the payment batch.",
            "type": "string"
          },
          "name": {
            "description": "Name of the payment batch.",
            "type": "string"
          },
          "status": {
            "description": "Status of the payment batch.",
            "type": "string"
          },
          "isValidForSubmission": {
            "description": "Indicates if the batch is valid for submission.",
            "type": "boolean"
          },
          "submissionTime": {
            "description": "Time of submission.",
            "type": "string"
          },
          "errors": {
            "description": "List of errors in the payment batch.\n\nError provides details on errors within a payment batch as received from Tipalti.\nFor more information you can check Tipalti documentation: https://documentation.tipalti.com/reference/http-status-codes#api-error-object",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/billing.v1.Settlement.PaymentData.TipaltiPaymentData.PaymentBatch.Error"
            }
          },
          "inspectionPossibleAfter": {
            "description": "Time after which inspection is possible.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "billing.v1.Settlement.PaymentData.TipaltiPaymentData.PaymentBatch.Error": {
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code.",
            "type": "string"
          },
          "message": {
            "description": "Error message.",
            "type": "string"
          },
          "docUrl": {
            "description": "Documentation URL.",
            "type": "string"
          },
          "parameter": {
            "description": "Parameter causing the error.",
            "type": "string"
          }
        }
      },
      "billing.v1.SettlementService.UpdateAccountSettlementStatusBody": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountSettlementStatus"
          }
        },
        "required": [
          "status"
        ]
      },
      "billing.v1.UpdateAccountSettlementStatusResponse": {
        "type": "object"
      },
      "billing_details.v1.BillingDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the billing detail"
          },
          "accountId": {
            "description": "Account for which the billing details are set. Commonly used for identifying details of affiliates.",
            "type": "string"
          },
          "name": {
            "type": "string",
            "title": "Full name present on the billing details"
          },
          "addressLine1": {
            "type": "string",
            "title": "First line of the address"
          },
          "city": {
            "type": "string",
            "title": "City of the address"
          },
          "countryCode": {
            "description": "Country code for the address. Uses ISO-3166, two letter formatting.",
            "type": "string"
          },
          "subdivisionCode": {
            "description": "Subdivision code for the address. Uses ISO 3166-2, two letter formatting.",
            "type": "string"
          },
          "postalCode": {
            "type": "string",
            "title": "Postal code of the address"
          },
          "addressLine2": {
            "type": "string",
            "title": "Second line of the address"
          },
          "invoicingEmail": {
            "type": "string",
            "title": "Email used for invoicing"
          },
          "vat": {
            "type": "string",
            "title": "VAT information"
          }
        },
        "title": "Billing detail"
      },
      "billing_details.v1.SetBillingDetailRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "title": "Identifier of the account"
          },
          "name": {
            "type": "string",
            "title": "Full name on the billing details"
          },
          "addressLine1": {
            "type": "string",
            "title": "First line of the address"
          },
          "city": {
            "type": "string",
            "title": "City of the address"
          },
          "countryCode": {
            "description": "Country code for the address. Uses ISO-3166, two letter formatting.",
            "type": "string"
          },
          "subdivisionCode": {
            "description": "Subdivision code for the address. Uses ISO-3166-2, two letter formatting.",
            "type": "string"
          },
          "postalCode": {
            "type": "string",
            "title": "Postal code of the address"
          },
          "addressLine2": {
            "type": "string",
            "title": "Second line of the address"
          },
          "invoicingEmail": {
            "type": "string",
            "title": "Email used for invoicing"
          },
          "vat": {
            "type": "string",
            "title": "VAT information"
          }
        },
        "title": "Set billing details"
      },
      "billing_details.v1.SetBillingDetailResponse": {
        "description": "Feedback message for update of billing details.",
        "type": "object",
        "properties": {
          "billingDetail": {
            "$ref": "#/components/schemas/billing_details.v1.BillingDetail"
          }
        }
      },
      "clicks.v1.AdClickId": {
        "description": "Identifies a click originating from a paid advertising platform (e.g. Google Ads, Meta Ads, TikTok Ads).",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/enums.v1.AdClickIdType"
          },
          "value": {
            "description": "Value of the click ID query parameter.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "clicks.v1.Click": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Internal identifier of a click.",
            "type": "string"
          },
          "cid": {
            "description": "Unique identifier of a click. This parameter is used when creating new conversions.",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp of click's creation date.",
            "type": "string",
            "format": "date-time"
          },
          "requestUrl": {
            "description": "URL of the origin of the incoming click.",
            "type": "string"
          },
          "userAgent": {
            "description": "Browser, OS and device.",
            "type": "string"
          },
          "ipAddress": {
            "description": "IP address from which the click was registered.",
            "type": "string"
          },
          "referer": {
            "description": "URL of the referring page that directed the user to the tracking link.",
            "type": "string"
          },
          "countryCode": {
            "description": "Code of the country from where the click originated. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "string"
          },
          "subdivisionCode": {
            "description": "Subdivision of the country of origin. Uses ISO-3166-2 format.",
            "type": "string"
          },
          "city": {
            "description": "City from where the click originated.",
            "type": "string"
          },
          "cityLatLong": {
            "description": "GPS coordinates of the click's origin.",
            "type": "string"
          },
          "affS1": {
            "description": "Custom aff S1 parameter.",
            "type": "string"
          },
          "affS2": {
            "description": "Custom aff S2 parameter.",
            "type": "string"
          },
          "affS3": {
            "description": "Custom aff S3 parameter.",
            "type": "string"
          },
          "affS4": {
            "description": "Custom aff S4 parameter.",
            "type": "string"
          },
          "affS5": {
            "description": "Custom aff S5 parameter.",
            "type": "string"
          },
          "sourcePublicId": {
            "description": "Affiliate public ID.",
            "type": "string"
          },
          "adClickId": {
            "$ref": "#/components/schemas/clicks.v1.AdClickId"
          }
        },
        "title": "Click"
      },
      "clicks.v1.CreateClickRequest": {
        "type": "object",
        "properties": {
          "linkId": {
            "description": "ID of the link to which the click is assigned.",
            "type": "string"
          },
          "sourceId": {
            "description": "Traffic source ID.",
            "type": "string"
          },
          "ipAddress": {
            "description": "IP address from where the click originated.",
            "type": "string"
          },
          "userAgent": {
            "description": "Browser, OS and device.",
            "type": "string"
          },
          "countryCode": {
            "description": "Code of the country from where the click originated. Uses ISO 3166-1 alpha-2 (two-letter) format.\nIf not provided, the whole geolocation data will be determined from the IP address.\nIn that case, subdivision_code, city, and city_lat_long must not be provided.",
            "type": "string"
          },
          "subdivisionCode": {
            "description": "Subdivision of the country of origin. Uses ISO-3166-2 format. Must not be provided if country_code is not set.",
            "type": "string"
          },
          "city": {
            "description": "City from where the click originated. Must not be provided if country_code is not set.",
            "type": "string"
          },
          "cityLatLong": {
            "$ref": "#/components/schemas/google.type.LatLng"
          },
          "requestUrl": {
            "description": "URL of the origin of the incoming click.",
            "type": "string"
          },
          "referer": {
            "description": "URL of the referring page that directed the user to the tracking link.",
            "type": "string"
          },
          "affS1": {
            "description": "Custom aff S1 parameter.",
            "type": "string"
          },
          "affS2": {
            "description": "Custom aff S2 parameter.",
            "type": "string"
          },
          "affS3": {
            "description": "Custom aff S3 parameter.",
            "type": "string"
          },
          "affS4": {
            "description": "Custom aff S4 parameter.",
            "type": "string"
          },
          "affS5": {
            "description": "Custom aff S5 parameter.",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the click was registered.",
            "type": "string",
            "format": "date-time"
          },
          "adClickId": {
            "$ref": "#/components/schemas/clicks.v1.AdClickId"
          }
        },
        "required": [
          "linkId",
          "sourceId",
          "ipAddress",
          "userAgent"
        ],
        "title": "Create a new click"
      },
      "clicks.v1.CreateClickResponse": {
        "description": "Feedback message for click creation status.",
        "type": "object",
        "properties": {
          "click": {
            "$ref": "#/components/schemas/clicks.v1.Click"
          }
        }
      },
      "client_metrics.v1.ClientMetric": {
        "description": "A client metric definition.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Internal identifier of the metric.",
            "type": "string"
          },
          "name": {
            "description": "Display name of the metric.",
            "type": "string"
          },
          "code": {
            "description": "Unique code used to identify the metric in tracking requests.",
            "type": "string"
          },
          "monetary": {
            "description": "Whether the metric represents a monetary value.",
            "type": "boolean"
          },
          "visible": {
            "description": "Whether the metric is visible in the UI.",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "code",
          "monetary",
          "visible"
        ]
      },
      "client_metrics.v1.ClientMetricService.UpdateClientMetricNameBody": {
        "description": "Update the name of a client metric.",
        "type": "object",
        "properties": {
          "name": {
            "description": "New display name.",
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "client_metrics.v1.ClientMetricService.UpdateClientMetricVisibilityBody": {
        "description": "Update the visibility of a client metric.",
        "type": "object",
        "properties": {
          "visible": {
            "description": "New visibility state.",
            "type": "boolean"
          }
        },
        "required": [
          "visible"
        ]
      },
      "client_metrics.v1.CreateClientMetricMovementRequest": {
        "type": "object",
        "properties": {
          "externalClientId": {
            "description": "External ID of the client as known to the receiver.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Revenue origin the client belongs to.",
            "type": "string"
          },
          "metrics": {
            "description": "Metric values to record. Each code must be unique within the request.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.CreateClientMetricMovementRequest.Metric"
            }
          },
          "requestId": {
            "description": "Idempotency key. Requests sharing the same request_id are deduplicated.",
            "type": "string"
          }
        },
        "required": [
          "externalClientId",
          "revenueOriginId"
        ],
        "title": "Create a new client metric movement"
      },
      "client_metrics.v1.CreateClientMetricMovementRequest.Metric": {
        "description": "A single metric value to record.",
        "type": "object",
        "properties": {
          "code": {
            "description": "Code of the metric to update, as configured in the revenue origin settings.",
            "type": "string"
          },
          "valueType": {
            "$ref": "#/components/schemas/enums.v1.ClientMetricValueType"
          },
          "value": {
            "description": "Decimal string representing the metric value (e.g. \"42\" or \"3.14\").",
            "type": "string"
          }
        },
        "required": [
          "code",
          "valueType",
          "value"
        ]
      },
      "client_metrics.v1.CreateClientMetricMovementResponse": {
        "description": "Feedback message for client metric movement creation.",
        "type": "object"
      },
      "client_metrics.v1.ListClientMetricMovementsRequest": {
        "description": "List client metric movements matching the given filters.",
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          },
          "filters": {
            "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsRequest.Filters"
          }
        },
        "required": [
          "pagination",
          "filters"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsRequest.Filters": {
        "description": "Filters for narrowing the result set.",
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "clientIds": {
            "description": "Filter by internal client IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "clientExternalIds": {
            "description": "Filter by client external IDs as known to the receiver.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revenueOriginIds": {
            "description": "Filter by revenue origin IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "requestIds": {
            "description": "Filter by idempotency keys supplied in the original tracking request.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "timeRange"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsResponse": {
        "description": "List of client metric movements per pagination.",
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsResponse.Row"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsResponse.Row": {
        "description": "A single movement row.",
        "type": "object",
        "properties": {
          "client": {
            "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsResponse.Row.Client"
          },
          "integerMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsResponse.Row.IntegerMetric"
            }
          },
          "decimalMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.ListClientMetricMovementsResponse.Row.DecimalMetric"
            }
          },
          "requestData": {
            "description": "Raw JSON payload of the original tracking request.",
            "type": "string"
          },
          "requestId": {
            "description": "Idempotency key supplied by the receiver.",
            "type": "string"
          },
          "totalRevshare": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "accountSettlementId": {
            "description": "Settlement this movement was included in, if any.",
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the movement was recorded.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "client",
          "integerMetrics",
          "decimalMetrics",
          "requestData",
          "totalRevshare",
          "createdAt"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsResponse.Row.Client": {
        "description": "Client that reported this movement.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Internal client identifier.",
            "type": "string"
          },
          "externalId": {
            "description": "External client identifier as known to the receiver.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Revenue origin the client belongs to.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "externalId",
          "revenueOriginId"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsResponse.Row.DecimalMetric": {
        "description": "Decimal metric value reported in this movement.",
        "type": "object",
        "properties": {
          "code": {
            "description": "Metric code.",
            "type": "string"
          },
          "value": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "code"
        ]
      },
      "client_metrics.v1.ListClientMetricMovementsResponse.Row.IntegerMetric": {
        "description": "Integer metric value reported in this movement.",
        "type": "object",
        "properties": {
          "code": {
            "description": "Metric code.",
            "type": "string"
          },
          "value": {
            "description": "Reported value, absent if not included in the original request.",
            "type": "string",
            "format": "int64"
          }
        },
        "required": [
          "code"
        ]
      },
      "client_metrics.v1.ListClientMetricsResponse": {
        "description": "List of client metrics grouped by value type.",
        "type": "object",
        "properties": {
          "integerMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.ClientMetric"
            }
          },
          "decimalMetrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client_metrics.v1.ClientMetric"
            }
          }
        },
        "required": [
          "integerMetrics",
          "decimalMetrics"
        ]
      },
      "client_metrics.v1.UpdateClientMetricNameResponse": {
        "description": "Feedback message for client metric name update.",
        "type": "object"
      },
      "client_metrics.v1.UpdateClientMetricVisibilityResponse": {
        "description": "Feedback message for client metric visibility update.",
        "type": "object"
      },
      "clients.v1.ExternalIdentifier": {
        "description": "Client lookup by external ID and revenue origin.",
        "type": "object",
        "properties": {
          "externalId": {
            "description": "External ID of the client as known to the receiver.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Revenue origin the client belongs to.",
            "type": "string"
          }
        },
        "required": [
          "externalId",
          "revenueOriginId"
        ]
      },
      "clients.v1.Identifier": {
        "description": "Client lookup key — identify a client by CID or by external ID and revenue origin.",
        "type": "object",
        "properties": {
          "cid": {
            "description": "CID – the click ID associated with the client.",
            "type": "string"
          },
          "external": {
            "$ref": "#/components/schemas/clients.v1.ExternalIdentifier"
          }
        }
      },
      "clients.v1.UpdateClientRequest": {
        "description": "Update client.",
        "type": "object",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/clients.v1.Identifier"
          },
          "externalId": {
            "description": "New external ID. Absent means no change.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.ClientStatus"
          },
          "selfExcluded": {
            "description": "New self-exclusion flag. Absent means no change.",
            "type": "boolean"
          }
        },
        "required": [
          "identifier"
        ]
      },
      "clients.v1.UpdateClientResponse": {
        "description": "Feedback for updating a client.",
        "type": "object"
      },
      "conversion_types.v1.ConversionType": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique identifier of the conversion type.",
            "type": "string"
          },
          "code": {
            "description": "Code of the conversion type.",
            "type": "string"
          },
          "name": {
            "type": "string",
            "title": "Name of the conversion type (in human readable format)"
          }
        },
        "title": "Conversion type"
      },
      "conversion_types.v1.ListConversionTypesAvailableForCidResponse": {
        "description": "List of conversion types available for the requesting click ID.",
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversion_types.v1.ListConversionTypesAvailableForCidResponse.Row"
            }
          }
        }
      },
      "conversion_types.v1.ListConversionTypesAvailableForCidResponse.Row": {
        "type": "object",
        "properties": {
          "conversionType": {
            "$ref": "#/components/schemas/conversion_types.v1.ConversionType"
          },
          "conversionValueType": {
            "$ref": "#/components/schemas/enums.v1.ConversionValueType"
          }
        }
      },
      "conversions.v1.ConversionCustomParams": {
        "description": "Custom parameters assigned to a conversion.",
        "type": "object",
        "properties": {
          "advS1": {
            "description": "Custom adv S1 parameter assigned to a conversion.",
            "type": "string"
          },
          "advS2": {
            "description": "Custom adv S2 parameter assigned to a conversion.",
            "type": "string"
          },
          "advS3": {
            "description": "Custom adv S3 parameter assigned to a conversion.",
            "type": "string"
          },
          "advS4": {
            "description": "Custom adv S4 parameter assigned to a conversion.",
            "type": "string"
          },
          "advS5": {
            "description": "Custom adv S5 parameter assigned to a conversion.",
            "type": "string"
          }
        }
      },
      "conversions.v1.ConversionStatus": {
        "description": "Check all validations on any index update.",
        "type": "string",
        "default": "CONVERSION_STATUS_UNSPECIFIED",
        "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"
        ]
      },
      "conversions.v1.ConversionsService.SetConversionStatusBody": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          }
        },
        "title": "Change conversion status"
      },
      "conversions.v1.SetConversionStatusResponse": {
        "description": "Feedback message for conversion status change.",
        "type": "object"
      },
      "conversions.v1.UpdateConversionStatusByExternalIdRequest": {
        "type": "object",
        "properties": {
          "revenueOriginId": {
            "description": "Revenue origin associated with the conversion. You can find this information in your unique trackdesk identifiers in the Settings.",
            "type": "string"
          },
          "externalId": {
            "description": "External ID associated with the conversion.",
            "type": "string"
          },
          "conversionTypeCode": {
            "description": "Code of the conversion type.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          }
        },
        "title": "Change conversion status by External ID"
      },
      "conversions.v1.UpdateConversionStatusByExternalIdResponse": {
        "description": "Feedback for update of conversion status.",
        "type": "object"
      },
      "coupons.v1.Coupon": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the coupon.",
            "type": "string"
          },
          "revenueOrigin": {
            "$ref": "#/components/schemas/coupons.v1.Coupon.RevenueOrigin"
          },
          "source": {
            "$ref": "#/components/schemas/coupons.v1.Coupon.Source"
          },
          "offer": {
            "$ref": "#/components/schemas/coupons.v1.Coupon.Offer"
          },
          "code": {
            "description": "The code of the coupon.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/coupons.v1.CouponStatus"
          },
          "revenueOriginId": {
            "description": "Deprecated: Unique ID of advertiser associated with the coupon.",
            "type": "string"
          }
        },
        "title": "Coupon"
      },
      "coupons.v1.Coupon.Offer": {
        "description": "An offer for which the coupon can be redeemed.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the offer.",
            "type": "string"
          },
          "name": {
            "description": "Name of the offer.",
            "type": "string"
          }
        }
      },
      "coupons.v1.Coupon.RevenueOrigin": {
        "description": "Advertiser associated with the coupon.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique ID of the advertiser.",
            "type": "string"
          },
          "name": {
            "description": "Name of the advertiser.",
            "type": "string"
          }
        }
      },
      "coupons.v1.Coupon.Source": {
        "description": "Traffic source able to trigger coupon redemption (essentially an affiliate).",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique system ID of the traffic source.",
            "type": "string"
          },
          "publicId": {
            "description": "Public ID.",
            "type": "string"
          }
        }
      },
      "coupons.v1.CouponStatus": {
        "type": "string",
        "default": "COUPON_STATUS_UNSPECIFIED",
        "enum": [
          "COUPON_STATUS_UNSPECIFIED",
          "COUPON_STATUS_ACTIVE",
          "COUPON_STATUS_INACTIVE",
          "COUPON_STATUS_REMOVED"
        ]
      },
      "coupons.v1.CreateCouponRequest": {
        "description": "Create a new coupon in the system.",
        "type": "object",
        "properties": {
          "source": {
            "$ref": "#/components/schemas/coupons.v1.CreateCouponRequest.Source"
          },
          "offerId": {
            "description": "Offer in which the coupon can be redeemed.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Revenue origin associated with the coupon. If not set, the default revenue origin from the offer is selected.",
            "type": "string"
          },
          "code": {
            "description": "The code of the coupon.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/coupons.v1.CouponStatus"
          }
        },
        "required": [
          "source",
          "offerId",
          "code",
          "status"
        ]
      },
      "coupons.v1.CreateCouponRequest.Source": {
        "description": "Traffic source able to trigger coupon redemption (essentially an affiliate).",
        "type": "object",
        "properties": {
          "id": {
            "description": "Traffic source ID.",
            "type": "string"
          },
          "publicId": {
            "$ref": "#/components/schemas/types.v1.SourcePublicId"
          }
        }
      },
      "coupons.v1.CreateCouponResponse": {
        "description": "Feedback message of the create coupon request.",
        "type": "object",
        "properties": {
          "coupon": {
            "$ref": "#/components/schemas/coupons.v1.Coupon"
          }
        }
      },
      "coupons.v1.DeleteCouponResponse": {
        "description": "Deletion confirmation.",
        "type": "object"
      },
      "coupons.v1.ListCouponsRequest": {
        "description": "Generate a list of existing coupons.",
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          },
          "revenueOriginIds": {
            "description": "Revenue origin IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sourceIds": {
            "description": "Traffic source IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offerIds": {
            "description": "Offer IDs.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "codes": {
            "description": "Coupon codes.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "description": "Coupon statuses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/coupons.v1.CouponStatus"
            }
          }
        },
        "required": [
          "pagination"
        ]
      },
      "coupons.v1.ListCouponsResponse": {
        "description": "List of coupons existing in the system.",
        "type": "object",
        "properties": {
          "coupons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/coupons.v1.Coupon"
            },
            "title": "Coupon codes"
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "enums.v1.AccountSettlementStatus": {
        "type": "string",
        "default": "ACCOUNT_SETTLEMENT_STATUS_UNSPECIFIED",
        "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",
        "default": "ACCOUNT_STATUS_UNSPECIFIED",
        "enum": [
          "ACCOUNT_STATUS_UNSPECIFIED",
          "ACCOUNT_STATUS_DISABLED",
          "ACCOUNT_STATUS_ENABLED",
          "ACCOUNT_STATUS_PENDING"
        ]
      },
      "enums.v1.AdClickIdType": {
        "type": "string",
        "default": "AD_CLICK_ID_TYPE_UNSPECIFIED",
        "enum": [
          "AD_CLICK_ID_TYPE_UNSPECIFIED",
          "AD_CLICK_ID_TYPE_FBCLID",
          "AD_CLICK_ID_TYPE_GCLID",
          "AD_CLICK_ID_TYPE_TTCLID"
        ]
      },
      "enums.v1.AffiliateTicketStatus": {
        "type": "string",
        "default": "AFFILIATE_TICKET_STATUS_UNSPECIFIED",
        "enum": [
          "AFFILIATE_TICKET_STATUS_UNSPECIFIED",
          "AFFILIATE_TICKET_STATUS_APPROVED",
          "AFFILIATE_TICKET_STATUS_NEW",
          "AFFILIATE_TICKET_STATUS_PENDING",
          "AFFILIATE_TICKET_STATUS_REJECTED"
        ]
      },
      "enums.v1.AnswerType": {
        "type": "string",
        "default": "ANSWER_TYPE_UNSPECIFIED",
        "enum": [
          "ANSWER_TYPE_UNSPECIFIED",
          "ANSWER_TYPE_TEXT",
          "ANSWER_TYPE_CHECKBOX",
          "ANSWER_TYPE_FILE_UPLOAD",
          "ANSWER_TYPE_SELECT_OPTION"
        ]
      },
      "enums.v1.AnuraScore": {
        "type": "string",
        "default": "ANURA_SCORE_UNSPECIFIED",
        "enum": [
          "ANURA_SCORE_UNSPECIFIED",
          "ANURA_SCORE_GOOD",
          "ANURA_SCORE_WARNING",
          "ANURA_SCORE_BAD"
        ]
      },
      "enums.v1.ClickStatus": {
        "type": "string",
        "default": "CLICK_STATUS_UNSPECIFIED",
        "enum": [
          "CLICK_STATUS_UNSPECIFIED",
          "CLICK_STATUS_OK",
          "CLICK_STATUS_NOT_ALLOWED",
          "CLICK_STATUS_BLOCKED"
        ]
      },
      "enums.v1.ClickType": {
        "type": "string",
        "default": "CLICK_TYPE_UNSPECIFIED",
        "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.ClientMetricValueType": {
        "type": "string",
        "default": "CLIENT_METRIC_VALUE_TYPE_UNSPECIFIED",
        "enum": [
          "CLIENT_METRIC_VALUE_TYPE_UNSPECIFIED",
          "CLIENT_METRIC_VALUE_TYPE_ABSOLUTE",
          "CLIENT_METRIC_VALUE_TYPE_RELATIVE"
        ]
      },
      "enums.v1.ClientStatus": {
        "type": "string",
        "default": "CLIENT_STATUS_UNSPECIFIED",
        "enum": [
          "CLIENT_STATUS_UNSPECIFIED",
          "CLIENT_STATUS_ACTIVE",
          "CLIENT_STATUS_INACTIVE"
        ]
      },
      "enums.v1.ConfirmoUnexportableReason": {
        "type": "string",
        "default": "CONFIRMO_UNEXPORTABLE_REASON_UNSPECIFIED",
        "enum": [
          "CONFIRMO_UNEXPORTABLE_REASON_UNSPECIFIED",
          "CONFIRMO_UNEXPORTABLE_REASON_CURRENCY_FROM_NOT_SUPPORTED",
          "CONFIRMO_UNEXPORTABLE_REASON_PAYMENT_METHOD_NOT_SUPPORTED"
        ]
      },
      "enums.v1.ConversionAttributionType": {
        "type": "string",
        "default": "CONVERSION_ATTRIBUTION_TYPE_UNSPECIFIED",
        "enum": [
          "CONVERSION_ATTRIBUTION_TYPE_UNSPECIFIED",
          "CONVERSION_ATTRIBUTION_TYPE_FIRST_TOUCH",
          "CONVERSION_ATTRIBUTION_TYPE_LAST_TOUCH"
        ]
      },
      "enums.v1.ConversionValueType": {
        "type": "string",
        "default": "CONVERSION_VALUE_TYPE_UNSPECIFIED",
        "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.Device": {
        "type": "string",
        "default": "DEVICE_UNSPECIFIED",
        "enum": [
          "DEVICE_UNSPECIFIED",
          "DEVICE_DESKTOP",
          "DEVICE_MOBILE",
          "DEVICE_TABLET"
        ]
      },
      "enums.v1.EarningType": {
        "type": "string",
        "default": "EARNING_TYPE_UNSPECIFIED",
        "enum": [
          "EARNING_TYPE_UNSPECIFIED",
          "EARNING_TYPE_ADJUSTMENT",
          "EARNING_TYPE_CLIENT_REVSHARE",
          "EARNING_TYPE_COMMISSION",
          "EARNING_TYPE_CONVERSION"
        ]
      },
      "enums.v1.FeatureId": {
        "type": "string",
        "default": "FEATURE_ID_UNSPECIFIED",
        "enum": [
          "FEATURE_ID_UNSPECIFIED",
          "FEATURE_ID_ACTIVE_OFFERS",
          "FEATURE_ID_ACTIVITY_LOGS",
          "FEATURE_ID_ADVERTISER_EMAIL_PLATFORM",
          "FEATURE_ID_ADVERTISERS",
          "FEATURE_ID_AFFILIATE_APP_MESSAGES",
          "FEATURE_ID_AFFILIATE_CONVERSION_VISIBILITY",
          "FEATURE_ID_AFFILIATE_EMAIL_PLATFORM",
          "FEATURE_ID_AFFILIATE_MANAGERS",
          "FEATURE_ID_AFFILIATE_TICKETING",
          "FEATURE_ID_AFFILIATES_BULK_UPDATE",
          "FEATURE_ID_AFFILIATES_EXPORT",
          "FEATURE_ID_AFFILIATES_IMPORT",
          "FEATURE_ID_ALBATO",
          "FEATURE_ID_ALBATO_PREMIUM_INTEGRATIONS",
          "FEATURE_ID_ANURA",
          "FEATURE_ID_APPLY_TO_RUN_OFFERS",
          "FEATURE_ID_AVAILABLE_PAYMENT_METHODS",
          "FEATURE_ID_CLAIM_GENERATING",
          "FEATURE_ID_CLIENTS",
          "FEATURE_ID_COLOR_THEME",
          "FEATURE_ID_CONFIRMO",
          "FEATURE_ID_CONVERSION_AMOUNT_MODIFICATION",
          "FEATURE_ID_CONVERSION_AMOUNT_VISIBILITY",
          "FEATURE_ID_CONVERSIONS_IMPORT",
          "FEATURE_ID_CONVERSIONS_UPDATE_CSV",
          "FEATURE_ID_COUPONS",
          "FEATURE_ID_CUSTOM_AFFILIATE_FORM",
          "FEATURE_ID_CUSTOM_AFFILIATE_REGISTRATION",
          "FEATURE_ID_CUSTOM_CONVERSION_TYPES",
          "FEATURE_ID_CUSTOM_DOMAINS",
          "FEATURE_ID_CUSTOM_INTERNAL_PAGES",
          "FEATURE_ID_CUSTOM_MENU_ITEMS",
          "FEATURE_ID_CUSTOM_PRIVACY_POLICY",
          "FEATURE_ID_CUSTOM_REVENUE_ORIGINS",
          "FEATURE_ID_CUSTOM_REVENUE_VISIBILITY",
          "FEATURE_ID_CUSTOM_TERMS_AND_CONDITIONS",
          "FEATURE_ID_CUSTOM_TIER_TRANSITION_AUTOMATION",
          "FEATURE_ID_CUSTOM_TIERS",
          "FEATURE_ID_DEEP_LINKING",
          "FEATURE_ID_DEFAULT_REPORT_FILTERING",
          "FEATURE_ID_DEFAULT_THEME",
          "FEATURE_ID_EMAIL_CUSTOMIZATION",
          "FEATURE_ID_ENABLED_INTERNAL_USERS",
          "FEATURE_ID_EXPORT_REPORTS",
          "FEATURE_ID_FRAUD_DETECTION",
          "FEATURE_ID_FREE_TRIAL_START",
          "FEATURE_ID_FULL_WHITE_LABEL",
          "FEATURE_ID_GOOGLE_CERTIFIED_REDIRECTING",
          "FEATURE_ID_LIVE_CHAT_INTERCOM_SUPPORT",
          "FEATURE_ID_MULTI_CURRENCY",
          "FEATURE_ID_MULTI_FACTOR_AUTHENTICATION",
          "FEATURE_ID_NOTIFICATION_CUSTOM_EVENTS",
          "FEATURE_ID_NOTIFICATIONS",
          "FEATURE_ID_OFFER_CAPS",
          "FEATURE_ID_ON_HOLD",
          "FEATURE_ID_PARTNERSHIP_MARKETPLACE",
          "FEATURE_ID_PAYOUT_AUTOMATION",
          "FEATURE_ID_PRICING_ADJUSTMENTS",
          "FEATURE_ID_PRICING_SUPER_GROUP_RULES",
          "FEATURE_ID_PRIVATE_OFFERS",
          "FEATURE_ID_PUBLIC_API",
          "FEATURE_ID_PUBLIC_API_CLAIMS",
          "FEATURE_ID_PUBLIC_API_PAYMENTS",
          "FEATURE_ID_PUBLIC_API_SETTLEMENTS",
          "FEATURE_ID_QUALIFICATIONS",
          "FEATURE_ID_REDIRECT",
          "FEATURE_ID_REDIRECT_DOMAINS_TYPE",
          "FEATURE_ID_REDIRECT_MODES",
          "FEATURE_ID_REFERRALS",
          "FEATURE_ID_REFERRALS_INDIVIDUAL_ACCESS",
          "FEATURE_ID_REPORT_BUILDER_ADVANCED",
          "FEATURE_ID_SHORT_LINKS",
          "FEATURE_ID_SMART_LINKS",
          "FEATURE_ID_SMTP_EMAILING",
          "FEATURE_ID_SOURCE_PUBLIC_ID_DEFINITION",
          "FEATURE_ID_TRACKING_API_AUTHORIZATION",
          "FEATURE_ID_TRACKING_BLOCKING",
          "FEATURE_ID_TRACKING_QUALITY_CONTROL",
          "FEATURE_ID_UI_TRANSLATIONS"
        ]
      },
      "enums.v1.FraudDetectionRule": {
        "type": "string",
        "default": "FRAUD_DETECTION_RULE_UNSPECIFIED",
        "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",
        "default": "LANDING_PAGE_STATUS_UNSPECIFIED",
        "enum": [
          "LANDING_PAGE_STATUS_UNSPECIFIED",
          "LANDING_PAGE_STATUS_ENABLED",
          "LANDING_PAGE_STATUS_HIDDEN",
          "LANDING_PAGE_STATUS_DISABLED"
        ]
      },
      "enums.v1.MailMarketingEvent": {
        "type": "string",
        "default": "MAIL_MARKETING_EVENT_UNSPECIFIED",
        "enum": [
          "MAIL_MARKETING_EVENT_UNSPECIFIED",
          "MAIL_MARKETING_EVENT_CLICK_TRACKING_ASSISTANCE",
          "MAIL_MARKETING_EVENT_CLICK_TRACKING_SETUP",
          "MAIL_MARKETING_EVENT_CONVERSION_TRACKING_SETUP",
          "MAIL_MARKETING_EVENT_CREATE_YOUR_OFFER",
          "MAIL_MARKETING_EVENT_FINISH_YOUR_OFFER",
          "MAIL_MARKETING_EVENT_FIRST_AFFILIATE",
          "MAIL_MARKETING_EVENT_FIRST_CLICK",
          "MAIL_MARKETING_EVENT_FIRST_CONVERSION",
          "MAIL_MARKETING_EVENT_FIRST_OFFER_IN_DRAFT",
          "MAIL_MARKETING_EVENT_FIRST_OFFER_PUBLISHED",
          "MAIL_MARKETING_EVENT_FREE_TRIAL_EXPIRED",
          "MAIL_MARKETING_EVENT_GIVE_US_REVIEW",
          "MAIL_MARKETING_EVENT_INVITE_AFFILIATES"
        ]
      },
      "enums.v1.MarketplaceAccessStatus": {
        "type": "string",
        "default": "MARKETPLACE_ACCESS_STATUS_UNSPECIFIED",
        "enum": [
          "MARKETPLACE_ACCESS_STATUS_UNSPECIFIED",
          "MARKETPLACE_ACCESS_STATUS_APPROVED",
          "MARKETPLACE_ACCESS_STATUS_NOT_APPLIED",
          "MARKETPLACE_ACCESS_STATUS_PENDING",
          "MARKETPLACE_ACCESS_STATUS_REJECTED"
        ]
      },
      "enums.v1.OfferAccess": {
        "type": "string",
        "default": "OFFER_ACCESS_UNSPECIFIED",
        "enum": [
          "OFFER_ACCESS_UNSPECIFIED",
          "OFFER_ACCESS_ALLOWED",
          "OFFER_ACCESS_FORBIDDEN",
          "OFFER_ACCESS_PENDING"
        ]
      },
      "enums.v1.OfferStatus": {
        "type": "string",
        "default": "OFFER_STATUS_UNSPECIFIED",
        "enum": [
          "OFFER_STATUS_UNSPECIFIED",
          "OFFER_STATUS_DRAFT",
          "OFFER_STATUS_ACTIVE",
          "OFFER_STATUS_INACTIVE"
        ]
      },
      "enums.v1.OfferTrafficSource": {
        "type": "string",
        "default": "OFFER_TRAFFIC_SOURCE_UNSPECIFIED",
        "enum": [
          "OFFER_TRAFFIC_SOURCE_UNSPECIFIED",
          "OFFER_TRAFFIC_SOURCE_APP_INSTALLS",
          "OFFER_TRAFFIC_SOURCE_CONTEXTUAL",
          "OFFER_TRAFFIC_SOURCE_DISPLAY",
          "OFFER_TRAFFIC_SOURCE_EMAIL",
          "OFFER_TRAFFIC_SOURCE_POP",
          "OFFER_TRAFFIC_SOURCE_PUSH",
          "OFFER_TRAFFIC_SOURCE_SEARCH",
          "OFFER_TRAFFIC_SOURCE_SMS",
          "OFFER_TRAFFIC_SOURCE_SOCIAL",
          "OFFER_TRAFFIC_SOURCE_SURVEY"
        ]
      },
      "enums.v1.OfferVisibility": {
        "type": "string",
        "default": "OFFER_VISIBILITY_UNSPECIFIED",
        "enum": [
          "OFFER_VISIBILITY_UNSPECIFIED",
          "OFFER_VISIBILITY_PUBLIC",
          "OFFER_VISIBILITY_PRIVATE",
          "OFFER_VISIBILITY_APPLY_TO_RUN"
        ]
      },
      "enums.v1.OperatingSystem": {
        "type": "string",
        "default": "OPERATING_SYSTEM_UNSPECIFIED",
        "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.QuestionVisibility": {
        "type": "string",
        "default": "QUESTION_VISIBILITY_UNSPECIFIED",
        "enum": [
          "QUESTION_VISIBILITY_UNSPECIFIED",
          "QUESTION_VISIBILITY_REQUIRED",
          "QUESTION_VISIBILITY_OPTIONAL",
          "QUESTION_VISIBILITY_HIDDEN"
        ]
      },
      "enums.v1.ReportColumn": {
        "type": "string",
        "default": "REPORT_COLUMN_UNSPECIFIED",
        "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",
        "default": "REPORT_GROUPING_UNSPECIFIED",
        "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"
        ]
      },
      "enums.v1.RevenueOriginStatus": {
        "type": "string",
        "default": "REVENUE_ORIGIN_STATUS_UNSPECIFIED",
        "enum": [
          "REVENUE_ORIGIN_STATUS_UNSPECIFIED",
          "REVENUE_ORIGIN_STATUS_ACTIVE",
          "REVENUE_ORIGIN_STATUS_INACTIVE"
        ]
      },
      "enums.v1.SourceStatus": {
        "type": "string",
        "default": "SOURCE_STATUS_UNSPECIFIED",
        "enum": [
          "SOURCE_STATUS_UNSPECIFIED",
          "SOURCE_STATUS_DISABLED",
          "SOURCE_STATUS_ENABLED"
        ]
      },
      "enums.v1.TagScope": {
        "type": "string",
        "default": "TAG_SCOPE_UNSPECIFIED",
        "enum": [
          "TAG_SCOPE_UNSPECIFIED",
          "TAG_SCOPE_ADVERTISERS",
          "TAG_SCOPE_AFFILIATE_MANAGERS",
          "TAG_SCOPE_AFFILIATES",
          "TAG_SCOPE_OFFERS"
        ]
      },
      "enums.v1.TenantTouchpointCategory": {
        "type": "string",
        "default": "TENANT_TOUCHPOINT_CATEGORY_UNSPECIFIED",
        "enum": [
          "TENANT_TOUCHPOINT_CATEGORY_UNSPECIFIED",
          "TENANT_TOUCHPOINT_CATEGORY_AFFILIATE_COMMUNICATION",
          "TENANT_TOUCHPOINT_CATEGORY_AFFILIATE_SETTINGS",
          "TENANT_TOUCHPOINT_CATEGORY_GENERAL_SETTINGS",
          "TENANT_TOUCHPOINT_CATEGORY_OFFER",
          "TENANT_TOUCHPOINT_CATEGORY_REPORTS",
          "TENANT_TOUCHPOINT_CATEGORY_TRACKING"
        ]
      },
      "enums.v1.TenantTouchpointType": {
        "type": "string",
        "default": "TENANT_TOUCHPOINT_TYPE_UNSPECIFIED",
        "enum": [
          "TENANT_TOUCHPOINT_TYPE_UNSPECIFIED",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATE_ADDED",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATE_REGISTRATION_PAGE",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATE_REGISTRATION_PAGE_NOTE",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATE_TICKETING",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATE_TRACKING",
          "TENANT_TOUCHPOINT_TYPE_AFFILIATES_POSTBACK",
          "TENANT_TOUCHPOINT_TYPE_BRANDING",
          "TENANT_TOUCHPOINT_TYPE_CONTACT_FOR_AFFILIATES",
          "TENANT_TOUCHPOINT_TYPE_CREATIVES_UPLOADED",
          "TENANT_TOUCHPOINT_TYPE_DASHBOARD_NOTE",
          "TENANT_TOUCHPOINT_TYPE_DATA_VISIBILITY",
          "TENANT_TOUCHPOINT_TYPE_LANDING_PAGES",
          "TENANT_TOUCHPOINT_TYPE_MENU_CUSTOMIZATION",
          "TENANT_TOUCHPOINT_TYPE_OFFER_GENERAL",
          "TENANT_TOUCHPOINT_TYPE_PAYMENT_METHODS",
          "TENANT_TOUCHPOINT_TYPE_PRIVACY_POLICY",
          "TENANT_TOUCHPOINT_TYPE_REPORTS_ADJUSTED",
          "TENANT_TOUCHPOINT_TYPE_REVENUE_AND_PAYOUTS",
          "TENANT_TOUCHPOINT_TYPE_SYSTEM_EMAIL_CUSTOMIZATION",
          "TENANT_TOUCHPOINT_TYPE_TERMS_AND_CONDITIONS",
          "TENANT_TOUCHPOINT_TYPE_TRACKING_ACTIVE",
          "TENANT_TOUCHPOINT_TYPE_USERS_ADDED"
        ]
      },
      "enums.v1.Theme": {
        "type": "string",
        "default": "THEME_UNSPECIFIED",
        "enum": [
          "THEME_UNSPECIFIED",
          "THEME_DARK",
          "THEME_LIGHT",
          "THEME_SYSTEM"
        ]
      },
      "enums.v1.TrackingType": {
        "type": "string",
        "default": "TRACKING_TYPE_UNSPECIFIED",
        "enum": [
          "TRACKING_TYPE_UNSPECIFIED",
          "TRACKING_TYPE_DIRECT",
          "TRACKING_TYPE_REDIRECT"
        ]
      },
      "google.protobuf.Any": {
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }",
        "type": "object",
        "properties": {
          "@type": {
            "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics.",
            "type": "string"
          }
        }
      },
      "google.rpc.Status": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/google.protobuf.Any"
            }
          }
        }
      },
      "google.type.LatLng": {
        "description": "An object that represents a latitude/longitude pair. This is expressed as a\npair of doubles to represent degrees latitude and degrees longitude. Unless\nspecified otherwise, this object must conform to the\n<a href=\"https://en.wikipedia.org/wiki/World_Geodetic_System#1984_version\">\nWGS84 standard</a>. Values must be within normalized ranges.",
        "type": "object",
        "properties": {
          "latitude": {
            "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
            "type": "number",
            "format": "double"
          }
        }
      },
      "locations.v1.Location": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "city": {
            "type": "string"
          }
        },
        "required": [
          "countryCode"
        ]
      },
      "locations.v1.LocationRequest": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "subdivision": {
            "type": "string"
          },
          "city": {
            "type": "string"
          }
        },
        "required": [
          "countryCode"
        ]
      },
      "locations.v1.Locations": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/locations.v1.Location"
            }
          },
          "excluded": {
            "type": "boolean"
          }
        },
        "required": [
          "values",
          "excluded"
        ]
      },
      "locations.v1.LocationsRequest": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/locations.v1.LocationRequest"
            }
          },
          "excluded": {
            "type": "boolean"
          }
        }
      },
      "memberships.v1.BillingCycle": {
        "type": "string",
        "default": "BILLING_CYCLE_UNSPECIFIED",
        "enum": [
          "BILLING_CYCLE_UNSPECIFIED",
          "BILLING_CYCLE_ANNUAL",
          "BILLING_CYCLE_MONTHLY"
        ]
      },
      "memberships.v1.Membership": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/memberships.v1.Status"
          },
          "planId": {
            "$ref": "#/components/schemas/memberships.v1.PlanId"
          },
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "endsAt": {
            "type": "string",
            "format": "date-time"
          },
          "trialExpired": {
            "type": "boolean"
          },
          "billingCycle": {
            "$ref": "#/components/schemas/memberships.v1.BillingCycle"
          }
        },
        "required": [
          "status",
          "planId",
          "trialExpired"
        ]
      },
      "memberships.v1.PlanId": {
        "type": "string",
        "default": "PLAN_ID_UNSPECIFIED",
        "enum": [
          "PLAN_ID_UNSPECIFIED",
          "PLAN_ID_BUSINESS",
          "PLAN_ID_ENTERPRISE",
          "PLAN_ID_ENTERPRISE_PLUS",
          "PLAN_ID_FREEMIUM",
          "PLAN_ID_IGAMING_FULL_HOUSE",
          "PLAN_ID_IGAMING_JACKPOT",
          "PLAN_ID_IGAMING_SLOT",
          "PLAN_ID_NETWORK_GROWTH",
          "PLAN_ID_NETWORK_PLUS",
          "PLAN_ID_NETWORK_SEED",
          "PLAN_ID_STARTER"
        ]
      },
      "memberships.v1.PlatformId": {
        "type": "string",
        "default": "PLATFORM_ID_UNSPECIFIED",
        "enum": [
          "PLATFORM_ID_UNSPECIFIED",
          "PLATFORM_ID_SHOPIFY",
          "PLATFORM_ID_STRIPE"
        ]
      },
      "memberships.v1.Status": {
        "type": "string",
        "default": "STATUS_UNSPECIFIED",
        "enum": [
          "STATUS_UNSPECIFIED",
          "STATUS_ACTIVE",
          "STATUS_INACTIVE",
          "STATUS_TRIALING"
        ]
      },
      "offers.v1.AffiliateAssignment": {
        "description": "Affiliate to offer assignment record with related account, source, and optional application data.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Assignment unique identifier (UUID).",
            "type": "string"
          },
          "assignedAt": {
            "description": "Time when the assignment was created.",
            "type": "string",
            "format": "date-time"
          },
          "access": {
            "$ref": "#/components/schemas/enums.v1.OfferAccess"
          },
          "applicationData": {
            "$ref": "#/components/schemas/offers.v1.ApplicationData"
          },
          "account": {
            "$ref": "#/components/schemas/offers.v1.AffiliateAssignment.Account"
          },
          "source": {
            "$ref": "#/components/schemas/offers.v1.AffiliateAssignment.Source"
          }
        },
        "required": [
          "id",
          "assignedAt",
          "access",
          "account",
          "source"
        ]
      },
      "offers.v1.AffiliateAssignment.Account": {
        "description": "Account of the assigned affiliate.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Account unique identifier (UUID).",
            "type": "string"
          },
          "name": {
            "description": "Account display name.",
            "type": "string"
          },
          "email": {
            "description": "Account email address.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "email"
        ]
      },
      "offers.v1.AffiliateAssignment.Source": {
        "description": "Source of the affiliate assigned to the offer.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Source unique identifier (UUID).",
            "type": "string"
          },
          "publicId": {
            "description": "Public-facing source identifier used in tracking links.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "publicId"
        ]
      },
      "offers.v1.ApplicationCustomization": {
        "description": "Customization options for the application form on apply-to-run offers.",
        "type": "object",
        "properties": {
          "quickApplication": {
            "$ref": "#/components/schemas/offers.v1.QuickApplication"
          },
          "custom": {
            "$ref": "#/components/schemas/offers.v1.ApplicationCustomization.Custom"
          }
        }
      },
      "offers.v1.ApplicationCustomization.Custom": {
        "description": "Custom application configuration with consent text and custom questions.",
        "type": "object",
        "properties": {
          "consent": {
            "description": "Consent text shown to applicants (max 1000 chars).",
            "type": "string"
          },
          "customQuestions": {
            "description": "Custom questions presented to applicants (max 5).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.CustomQuestionSettings"
            }
          }
        }
      },
      "offers.v1.ApplicationData": {
        "description": "Application submitted by an affiliate source to join an apply-to-run offer.",
        "type": "object",
        "properties": {
          "note": {
            "description": "Free-form note attached by the applying affiliate.",
            "type": "string"
          },
          "customQuestions": {
            "$ref": "#/components/schemas/offers.v1.ApplicationData.CustomQuestions"
          }
        }
      },
      "offers.v1.ApplicationData.CustomQuestions": {
        "description": "Affiliate-provided answers to the application form attached to the offer.",
        "type": "object",
        "properties": {
          "consent": {
            "description": "Consent flag, present when the offer requires explicit consent.",
            "type": "boolean"
          },
          "customQuestionAnswers": {
            "description": "Answers to custom questions defined by the offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer"
            }
          }
        }
      },
      "offers.v1.CreateLandingPagesResponse": {
        "description": "Response containing the created landing pages.",
        "type": "object",
        "properties": {
          "landingPages": {
            "description": "Landing pages created by the request.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.LandingPage"
            }
          }
        },
        "required": [
          "landingPages"
        ]
      },
      "offers.v1.CreateOfferRequest": {
        "description": "Request to create and publish a complete offer.",
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offers.v1.OfferParams"
          },
          "pricing": {
            "$ref": "#/components/schemas/offers.v1.OfferPricingParams"
          },
          "landingPages": {
            "description": "Landing pages to add to the offer. Provide at least one; all must use the same link type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.LandingPageParams"
            }
          },
          "publishAt": {
            "description": "When to publish the offer. Leave unset to publish immediately, or set a future time to schedule it.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "offer",
          "pricing",
          "landingPages"
        ]
      },
      "offers.v1.CreateOfferResponse": {
        "description": "The created offer together with everything that was set up for it.",
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offers.v1.Offer"
          }
        },
        "required": [
          "offer"
        ]
      },
      "offers.v1.DirectLink": {
        "description": "Direct tracking link details for a landing page.",
        "type": "object",
        "properties": {
          "publicId": {
            "description": "Public-facing direct link identifier used in tracking URLs.",
            "type": "string"
          }
        },
        "required": [
          "publicId"
        ]
      },
      "offers.v1.DirectLinkParams": {
        "description": "Marker payload selecting a direct tracking link for create/update inputs. Currently carries no fields.",
        "type": "object"
      },
      "offers.v1.GetOfferResponse": {
        "description": "The requested offer together with its pricing and landing pages.",
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offers.v1.Offer"
          }
        },
        "required": [
          "offer"
        ]
      },
      "offers.v1.LandingPage": {
        "description": "Landing page paired with its tracking link metadata. The link variant indicates the tracking type.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Landing page unique identifier (UUID).",
            "type": "string"
          },
          "offerId": {
            "description": "Identifier (UUID) of the offer this landing page belongs to.",
            "type": "string"
          },
          "url": {
            "description": "Destination URL the landing page points to.",
            "type": "string"
          },
          "name": {
            "description": "Landing page display name.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.LandingPageStatus"
          },
          "directLink": {
            "$ref": "#/components/schemas/offers.v1.DirectLink"
          },
          "redirectLink": {
            "$ref": "#/components/schemas/offers.v1.RedirectLink"
          }
        },
        "required": [
          "id",
          "offerId",
          "url",
          "name",
          "status"
        ]
      },
      "offers.v1.LandingPageParams": {
        "description": "Single landing page to create.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Landing page display name.",
            "type": "string"
          },
          "url": {
            "description": "Destination URL the landing page points to.",
            "type": "string"
          },
          "directLink": {
            "$ref": "#/components/schemas/offers.v1.DirectLinkParams"
          },
          "redirectLink": {
            "$ref": "#/components/schemas/offers.v1.RedirectLinkParams"
          }
        },
        "required": [
          "name",
          "url"
        ]
      },
      "offers.v1.LandingPagesService.CreateLandingPagesBody": {
        "description": "Request to create one or more landing pages for an offer. All landing pages in the list must use the same link type.",
        "type": "object",
        "properties": {
          "landingPages": {
            "description": "Landing pages to create. Must contain at least one entry and all entries must share the same link type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.LandingPageParams"
            }
          }
        },
        "required": [
          "landingPages"
        ]
      },
      "offers.v1.LandingPagesService.ListLandingPagesBody": {
        "description": "Request to list landing pages assigned to an offer.",
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "offers.v1.LandingPagesService.PrioritizeLandingPagesBody": {
        "description": "Request to set the priority order of landing pages for an offer.",
        "type": "object",
        "properties": {
          "orderedLandingPageIds": {
            "description": "Landing page identifiers (UUIDs) listed in the desired priority order. Must be unique and contain at least one entry.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "orderedLandingPageIds"
        ]
      },
      "offers.v1.LandingPagesService.UpdateLandingPageBody": {
        "description": "Request to update an existing landing page. The provided link variant must match the landing page's existing\ntracking type; switching tracking type is not supported.",
        "type": "object",
        "properties": {
          "name": {
            "description": "New landing page display name.",
            "type": "string"
          },
          "url": {
            "description": "New destination URL the landing page points to.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.LandingPageStatus"
          },
          "directLink": {
            "$ref": "#/components/schemas/offers.v1.DirectLinkParams"
          },
          "redirectLink": {
            "$ref": "#/components/schemas/offers.v1.RedirectLinkParams"
          }
        },
        "required": [
          "name",
          "url",
          "status"
        ]
      },
      "offers.v1.ListAffiliateAssignmentsToOfferResponse": {
        "description": "The affiliate assignments for the offer, together with pagination details.",
        "type": "object",
        "properties": {
          "assignments": {
            "description": "The affiliate assignments for the offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.AffiliateAssignment"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "assignments",
          "pagination"
        ]
      },
      "offers.v1.ListLandingPagesResponse": {
        "description": "Response containing landing pages of the offer with their tracking link metadata.",
        "type": "object",
        "properties": {
          "landingPages": {
            "description": "Landing pages assigned to the offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.LandingPage"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "landingPages",
          "pagination"
        ]
      },
      "offers.v1.ListOffersRequest": {
        "description": "Request to list offers matching the given filters, each returned with its pricing and landing pages.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Partial, case-insensitive match on offer name (max 255 chars).",
            "type": "string"
          },
          "visibilities": {
            "description": "Filter by visibility; omit to include all visibilities.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OfferVisibility"
            }
          },
          "statuses": {
            "description": "Match offers having any of the specified statuses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OfferStatus"
            }
          },
          "tagIds": {
            "description": "Match offers that have at least one of the provided tag IDs (UUIDs).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "countryCodes": {
            "description": "Match offers targeting any of the specified country codes (ISO 3166-1 alpha-2).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "conversionTypeIds": {
            "description": "Match offers with pricing for any of the specified conversion type IDs (UUIDs).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categoryIds": {
            "description": "Filter by category IDs (UUIDs).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pinned": {
            "description": "When true: only pinned offers; false: only unpinned; unset: ignore.",
            "type": "boolean"
          },
          "ids": {
            "description": "Return only the specified offer IDs (UUIDs).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          }
        },
        "required": [
          "pagination"
        ]
      },
      "offers.v1.ListOffersResponse": {
        "description": "Offers matching the request, each together with its pricing and landing pages.",
        "type": "object",
        "properties": {
          "offers": {
            "description": "Result offers with their pricing and landing pages.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.Offer"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "offers",
          "pagination"
        ]
      },
      "offers.v1.Offer": {
        "description": "An offer together with its pricing and landing pages, in the same shape returned by create.",
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/offers.v1.OfferData"
          },
          "pricing": {
            "$ref": "#/components/schemas/offers.v1.OfferPricing"
          },
          "landingPages": {
            "description": "The landing pages of the offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.OfferLandingPage"
            }
          }
        },
        "required": [
          "data",
          "pricing",
          "landingPages"
        ]
      },
      "offers.v1.OfferAffiliatesService.ListAffiliateAssignmentsToOfferBody": {
        "description": "Request to list the affiliates assigned to an offer.",
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.OptionalPaginationParams"
          }
        }
      },
      "offers.v1.OfferAffiliatesService.SetAffiliatesAccessToOfferBody": {
        "description": "Request to set the access level of one or more affiliate sources on an offer, creating the assignment when it does not exist yet.",
        "type": "object",
        "properties": {
          "sourceIds": {
            "description": "Source identifiers (UUIDs) to assign. Must be unique and contain at least one entry.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "access": {
            "$ref": "#/components/schemas/enums.v1.OfferAccess"
          }
        },
        "required": [
          "sourceIds",
          "access"
        ]
      },
      "offers.v1.OfferData": {
        "description": "Offer entity as returned by the API.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Offer unique identifier (UUID).",
            "type": "string"
          },
          "categoryId": {
            "description": "Category identifier (UUID), if categorized.",
            "type": "string"
          },
          "name": {
            "description": "Human-readable offer name.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.OfferStatus"
          },
          "defaultRevenueOriginId": {
            "description": "Default revenue origin identifier for conversions attributed to this offer.",
            "type": "string"
          },
          "description": {
            "description": "Public description of the offer.",
            "type": "string"
          },
          "restrictions": {
            "description": "Restrictions/terms that apply to promoting the offer.",
            "type": "string"
          },
          "note": {
            "description": "Internal note, not intended for public display. Empty when the offer is listed for an affiliate.",
            "type": "string"
          },
          "hasThumbnail": {
            "description": "Whether the offer has a thumbnail uploaded.",
            "type": "boolean"
          },
          "visibility": {
            "$ref": "#/components/schemas/enums.v1.OfferVisibility"
          },
          "devices": {
            "description": "Allowed/targeted devices for this offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.Device"
            }
          },
          "trafficSources": {
            "description": "Allowed/targeted traffic sources.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OfferTrafficSource"
            }
          },
          "tagIds": {
            "description": "Tags associated with the offer.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pinned": {
            "description": "Whether the offer is pinned (highlighted for quick access).",
            "type": "boolean"
          },
          "trackingType": {
            "$ref": "#/components/schemas/enums.v1.TrackingType"
          },
          "deactivateAt": {
            "description": "Scheduled time at which the offer will be automatically deactivated.",
            "type": "string",
            "format": "date-time"
          },
          "publishAt": {
            "description": "Scheduled time at which the offer will be automatically published.",
            "type": "string",
            "format": "date-time"
          },
          "applicationCustomization": {
            "$ref": "#/components/schemas/offers.v1.ApplicationCustomization"
          },
          "createdAt": {
            "description": "Timestamp when the offer was created (UTC).",
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "description": "Timestamp of the last modification (UTC).",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "defaultRevenueOriginId",
          "description",
          "restrictions",
          "note",
          "hasThumbnail",
          "visibility",
          "devices",
          "trafficSources",
          "tagIds",
          "pinned",
          "trackingType",
          "createdAt",
          "modifiedAt"
        ]
      },
      "offers.v1.OfferLandingPage": {
        "description": "Landing page paired with its tracking link metadata. The link variant indicates the tracking type.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Landing page unique identifier (UUID).",
            "type": "string"
          },
          "url": {
            "description": "Destination URL the landing page points to.",
            "type": "string"
          },
          "name": {
            "description": "Landing page display name.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.LandingPageStatus"
          },
          "directLink": {
            "$ref": "#/components/schemas/offers.v1.DirectLink"
          },
          "redirectLink": {
            "$ref": "#/components/schemas/offers.v1.RedirectLink"
          }
        },
        "required": [
          "id",
          "url",
          "name",
          "status"
        ]
      },
      "offers.v1.OfferParams": {
        "description": "Editable parameters of an offer used by create and update requests.",
        "type": "object",
        "properties": {
          "categoryId": {
            "description": "Category identifier (UUID); omit if uncategorized.",
            "type": "string"
          },
          "name": {
            "description": "Human-readable offer name (1-255 chars).",
            "type": "string"
          },
          "defaultRevenueOriginId": {
            "description": "Default revenue origin identifier (UUID) for conversions attributed to this offer.",
            "type": "string"
          },
          "description": {
            "description": "Public description of the offer.",
            "type": "string"
          },
          "restrictions": {
            "description": "Restrictions/terms that apply to promoting the offer.",
            "type": "string"
          },
          "note": {
            "description": "Internal note, not intended for public display.",
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/enums.v1.OfferVisibility"
          },
          "devices": {
            "description": "Allowed/targeted devices for this offer.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.Device"
            }
          },
          "trafficSources": {
            "description": "Allowed/targeted traffic sources.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OfferTrafficSource"
            }
          },
          "tagIds": {
            "description": "Tag identifiers (UUIDs) associated with the offer.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "applicationCustomization": {
            "$ref": "#/components/schemas/offers.v1.ApplicationCustomization"
          }
        },
        "required": [
          "name",
          "defaultRevenueOriginId",
          "visibility"
        ]
      },
      "offers.v1.OfferPricing": {
        "description": "The pricing configuration stored for an offer, as returned by the API. This is the read-back representation of\nOfferPricingParams.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique id of this pricing configuration.",
            "type": "string"
          },
          "conversionTypeSettings": {
            "description": "Per-conversion-type settings.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.ConversionTypeSetting"
            }
          },
          "targetingGroups": {
            "description": "Targeting groups holding the revenue/payout amounts.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingGroup"
            }
          }
        },
        "required": [
          "id",
          "conversionTypeSettings",
          "targetingGroups"
        ]
      },
      "offers.v1.OfferPricingParams": {
        "description": "Revenue and payout configuration for the offer.",
        "type": "object",
        "properties": {
          "conversionTypeSettings": {
            "description": "Settings for each conversion type the offer pays out on, such as value type, hold period and\nqualification rules. Provide at least one.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.ConversionTypeSettingParams"
            }
          },
          "targetingGroups": {
            "description": "Targeting groups that hold the revenue and cost (payout) settings. Provide at least one.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingGroupParams"
            }
          }
        },
        "required": [
          "conversionTypeSettings",
          "targetingGroups"
        ]
      },
      "offers.v1.OffersService.UpdateOfferBody": {
        "description": "Request to update an offer's general settings.",
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offers.v1.OfferParams"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.OfferStatus"
          },
          "publishAt": {
            "description": "When to automatically publish the offer. Leave unset to keep the offer's current schedule, or set a\nfuture time to (re)schedule it.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "offer",
          "status"
        ]
      },
      "offers.v1.OffersService.UpdateOfferPricingBody": {
        "description": "Request to update an offer's pricing settings.",
        "type": "object",
        "properties": {
          "pricing": {
            "$ref": "#/components/schemas/offers.v1.OfferPricingParams"
          }
        },
        "required": [
          "pricing"
        ]
      },
      "offers.v1.PrioritizeLandingPagesResponse": {
        "type": "object"
      },
      "offers.v1.QuickApplication": {
        "description": "Marker selecting a single-click quick application without custom questions. Currently carries no fields.",
        "type": "object"
      },
      "offers.v1.RedirectLink": {
        "description": "Redirect tracking link details for a landing page.",
        "type": "object",
        "properties": {
          "targeting": {
            "$ref": "#/components/schemas/offers.v1.Targeting"
          }
        },
        "required": [
          "targeting"
        ]
      },
      "offers.v1.RedirectLinkParams": {
        "description": "Input payload selecting a redirect tracking link for create/update.",
        "type": "object",
        "properties": {
          "targeting": {
            "$ref": "#/components/schemas/offers.v1.TargetingParams"
          }
        }
      },
      "offers.v1.SetAffiliatesAccessToOfferResponse": {
        "description": "The affiliate assignments that were created or updated.",
        "type": "object",
        "properties": {
          "assignments": {
            "description": "The resulting affiliate-to-offer assignments.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/offers.v1.AffiliateAssignment"
            }
          }
        },
        "required": [
          "assignments"
        ]
      },
      "offers.v1.Targeting": {
        "description": "Targeting criteria returned for a redirect landing page.",
        "type": "object",
        "properties": {
          "locations": {
            "$ref": "#/components/schemas/locations.v1.Locations"
          },
          "languages": {
            "description": "ISO 639-1 two-letter language codes configured for targeting.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "devices": {
            "description": "Device types configured for targeting.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.Device"
            }
          },
          "operatingSystems": {
            "description": "Operating systems configured for targeting.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OperatingSystem"
            }
          }
        },
        "required": [
          "locations"
        ]
      },
      "offers.v1.TargetingParams": {
        "description": "Targeting criteria used as input when creating or updating a redirect landing page.",
        "type": "object",
        "properties": {
          "locations": {
            "$ref": "#/components/schemas/locations.v1.LocationsRequest"
          },
          "languages": {
            "description": "ISO 639-1 two-letter language codes to target. Omit to target all languages.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "devices": {
            "description": "Device types to target. Omit to target all devices.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.Device"
            }
          },
          "operatingSystems": {
            "description": "Operating systems to target. Omit to target all operating systems.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.OperatingSystem"
            }
          }
        }
      },
      "offers.v1.UpdateLandingPageResponse": {
        "description": "Response containing the updated landing page.",
        "type": "object",
        "properties": {
          "landingPage": {
            "$ref": "#/components/schemas/offers.v1.LandingPage"
          }
        },
        "required": [
          "landingPage"
        ]
      },
      "offers.v1.UpdateOfferPricingResponse": {
        "description": "The offer's updated pricing configuration.",
        "type": "object",
        "properties": {
          "pricing": {
            "$ref": "#/components/schemas/offers.v1.OfferPricing"
          }
        },
        "required": [
          "pricing"
        ]
      },
      "offers.v1.UpdateOfferResponse": {
        "description": "The offer's updated general settings.",
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offers.v1.OfferData"
          }
        },
        "required": [
          "offer"
        ]
      },
      "payment_methods.v1.CreatePaymentMethodRequest": {
        "description": "Create a new payment method.",
        "type": "object",
        "properties": {
          "accountId": {
            "description": "Account ID to associate the payment method with.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "data": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
          }
        }
      },
      "payment_methods.v1.CreatePaymentMethodResponse": {
        "description": "Feedback for creation of the payment method.",
        "type": "object",
        "properties": {
          "paymentMethod": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
          }
        }
      },
      "payment_methods.v1.ListSupportedPaymentMethodTypesResponse": {
        "description": "List of supported payment method types.",
        "type": "object",
        "properties": {
          "paymentMethodTypes": {
            "description": "List of available payment method types.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/payment_methods.v1.ListSupportedPaymentMethodTypesResponse.PaymentMethodType"
            }
          }
        }
      },
      "payment_methods.v1.ListSupportedPaymentMethodTypesResponse.PaymentMethodType": {
        "description": "Payment method type with supported currencies.",
        "type": "object",
        "properties": {
          "paymentMethodType": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "currencyCodes": {
            "description": "Currency codes supported by this payment method type. Uses ISO 4217 format.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "payment_methods.v1.PaymentMethod": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Identifier of the payment method.",
            "type": "string"
          },
          "accountId": {
            "description": "Account associated with the payment method.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "currencyCode": {
            "description": "Currency used in the payment method. Uses ISO 4217 format.",
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
          },
          "default": {
            "description": "Designates if payment method is set as default. Only one payment method can have this set as true.",
            "type": "boolean"
          }
        },
        "title": "Payment method detail"
      },
      "payment_methods.v1.PaymentMethodData": {
        "type": "object",
        "properties": {
          "bankTransfer": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.BankTransfer"
          },
          "bitcoin": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Bitcoin"
          },
          "creditStore": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.CreditStore"
          },
          "directDeposit": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.DirectDeposit"
          },
          "ether": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Ether"
          },
          "giftCard": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.GiftCard"
          },
          "mercadoPago": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.MercadoPago"
          },
          "neteller": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Neteller"
          },
          "paxum": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Paxum"
          },
          "payPal": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.PayPal"
          },
          "payoneer": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Payoneer"
          },
          "revolut": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Revolut"
          },
          "sepa": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Sepa"
          },
          "skrill": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Skrill"
          },
          "tipalti": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Tipalti"
          },
          "usdc": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Usdc"
          },
          "usdt": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Usdt"
          },
          "wise": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Wise"
          },
          "custom": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData.Custom"
          }
        },
        "title": "Payment methods details"
      },
      "payment_methods.v1.PaymentMethodData.BankTransfer": {
        "type": "object",
        "properties": {
          "bankAccountNumber": {
            "type": "string",
            "title": "Bank account number"
          },
          "bankAddress": {
            "type": "string",
            "title": "Address of the bank"
          },
          "bankName": {
            "type": "string",
            "title": "Name of the bank"
          },
          "swift": {
            "type": "string",
            "title": "SWIFT code for the account"
          },
          "aba": {
            "type": "string",
            "title": "ABA number (for U.S. transfers)"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Bank transfer"
      },
      "payment_methods.v1.PaymentMethodData.Bitcoin": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "description": "Address of the crypto wallet.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Bitcoin"
      },
      "payment_methods.v1.PaymentMethodData.CreditStore": {
        "type": "object",
        "properties": {
          "identification": {
            "description": "Credit store code.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Credit store"
      },
      "payment_methods.v1.PaymentMethodData.Custom": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Custom payment method name.",
            "type": "string"
          },
          "identification": {
            "description": "Custom payment method identification.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Custom payment method"
      },
      "payment_methods.v1.PaymentMethodData.DirectDeposit": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "description": "Bank account number.",
            "type": "string"
          },
          "accountHolder": {
            "description": "Holder of the bank account.",
            "type": "string"
          },
          "bankName": {
            "description": "Name of the bank.",
            "type": "string"
          },
          "bankRoutingNumber": {
            "description": "ABA/bank routing number of the bank.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Direct bank deposit"
      },
      "payment_methods.v1.PaymentMethodData.Ether": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "description": "Crypto wallet address.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Ether"
      },
      "payment_methods.v1.PaymentMethodData.GiftCard": {
        "type": "object",
        "properties": {
          "identification": {
            "description": "Gift card code.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Gift card"
      },
      "payment_methods.v1.PaymentMethodData.MercadoPago": {
        "description": "Mercado Pago.",
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "firstName": {
            "description": "First name.",
            "type": "string"
          },
          "lastName": {
            "description": "Last name.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        }
      },
      "payment_methods.v1.PaymentMethodData.Neteller": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Neteller"
      },
      "payment_methods.v1.PaymentMethodData.Paxum": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Paxum"
      },
      "payment_methods.v1.PaymentMethodData.PayPal": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "PayPal"
      },
      "payment_methods.v1.PaymentMethodData.Payoneer": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "title": "Payoneer"
      },
      "payment_methods.v1.PaymentMethodData.Revolut": {
        "type": "object",
        "properties": {
          "revolutTag": {
            "description": "Revolut tag.",
            "type": "string"
          },
          "phoneNumber": {
            "description": "Phone number associated with the Revolut account.",
            "type": "string"
          },
          "email": {
            "description": "Connected email address.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Revolut"
      },
      "payment_methods.v1.PaymentMethodData.Sepa": {
        "type": "object",
        "properties": {
          "iban": {
            "description": "IBAN of the account.",
            "type": "string"
          },
          "beneficiaryName": {
            "description": "Name of the beneficiary.",
            "type": "string"
          },
          "bic": {
            "description": "BIC/SWIFT of the banking institution.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "SEPA"
      },
      "payment_methods.v1.PaymentMethodData.Skrill": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Skrill"
      },
      "payment_methods.v1.PaymentMethodData.Tipalti": {
        "type": "object",
        "properties": {
          "payeeId": {
            "description": "ID of the payee.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Tipalti"
      },
      "payment_methods.v1.PaymentMethodData.Usdc": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "description": "Crypto wallet address.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "USDC"
      },
      "payment_methods.v1.PaymentMethodData.Usdt": {
        "type": "object",
        "properties": {
          "cryptoWalletAddress": {
            "description": "Crypto wallet address.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "USDT"
      },
      "payment_methods.v1.PaymentMethodData.Wise": {
        "type": "object",
        "properties": {
          "email": {
            "description": "Registered email.",
            "type": "string"
          },
          "note": {
            "description": "Internal note.",
            "type": "string"
          }
        },
        "title": "Wise"
      },
      "payment_methods.v1.PaymentMethodService.UpdatePaymentMethodBody": {
        "description": "Update existing payment method.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodType"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "data": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethodData"
          }
        }
      },
      "payment_methods.v1.PaymentMethodType": {
        "description": " - PAYMENT_METHOD_TYPE_TIPALTI: WARNING: This enum index (16) is referenced in cel expression in registration.proto.",
        "type": "string",
        "default": "PAYMENT_METHOD_TYPE_UNSPECIFIED",
        "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_TIPALTI",
          "PAYMENT_METHOD_TYPE_USDC",
          "PAYMENT_METHOD_TYPE_USDT",
          "PAYMENT_METHOD_TYPE_WISE"
        ]
      },
      "payment_methods.v1.UpdatePaymentMethodResponse": {
        "description": "Feedback for the update of the payment method.",
        "type": "object",
        "properties": {
          "paymentMethod": {
            "$ref": "#/components/schemas/payment_methods.v1.PaymentMethod"
          }
        }
      },
      "pricing.v1.ConversionTypeSetting": {
        "description": "Read-back representation of ConversionTypeSettingParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "type": "string"
          },
          "conversionValueType": {
            "$ref": "#/components/schemas/enums.v1.ConversionValueType"
          },
          "conversionCountLimit": {
            "type": "integer",
            "format": "int32"
          },
          "onHold": {
            "$ref": "#/components/schemas/pricing.v1.OnHold"
          },
          "qualification": {
            "$ref": "#/components/schemas/pricing.v1.Qualification"
          }
        },
        "required": [
          "conversionTypeId",
          "conversionValueType"
        ]
      },
      "pricing.v1.ConversionTypeSettingParams": {
        "description": "Settings that control how a single conversion type is valued and processed within this pricing.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "description": "The conversion type these settings apply to.",
            "type": "string"
          },
          "conversionValueType": {
            "$ref": "#/components/schemas/enums.v1.ConversionValueType"
          },
          "conversionCountLimit": {
            "description": "Maximum number of conversions of this type that are counted per click. Leave unset for unlimited\n(e.g. set to 1 to pay only for the first conversion, useful for non-recurring goals).",
            "type": "integer",
            "format": "int32"
          },
          "onHold": {
            "$ref": "#/components/schemas/pricing.v1.OnHold"
          },
          "qualification": {
            "$ref": "#/components/schemas/pricing.v1.Qualification"
          }
        },
        "required": [
          "conversionTypeId",
          "conversionValueType"
        ]
      },
      "pricing.v1.Cost": {
        "description": "The affiliate payout for one conversion type, as stored. Unlike CostParams, when the payout was configured as\n\"use default\", `use_default` here carries the resolved amount/rate inherited from the tier rather than an empty marker.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "type": "string"
          },
          "explicit": {
            "$ref": "#/components/schemas/types.v1.AmountOrRate"
          },
          "default": {
            "$ref": "#/components/schemas/types.v1.AmountOrRate"
          }
        },
        "required": [
          "conversionTypeId"
        ]
      },
      "pricing.v1.CostParams": {
        "description": "The affiliate payout (\"cost\" to the network) for one conversion type.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "description": "The conversion type this payout applies to.",
            "type": "string"
          },
          "explicit": {
            "$ref": "#/components/schemas/types.v1.AmountOrRate"
          },
          "useDefault": {
            "$ref": "#/components/schemas/pricing.v1.UseDefaultCost"
          }
        },
        "required": [
          "conversionTypeId"
        ]
      },
      "pricing.v1.CurrencyGroup": {
        "description": "Read-back representation of CurrencyGroupParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "isDefault": {
            "type": "boolean"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "revenues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.Revenue"
            }
          },
          "tierCosts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TierCost"
            }
          },
          "sourceCosts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.SourceCost"
            }
          }
        },
        "required": [
          "isDefault",
          "currency",
          "revenues",
          "tierCosts"
        ]
      },
      "pricing.v1.CurrencyGroupParams": {
        "description": "The revenue and payout amounts for a single currency within a targeting group. The conversion's currency selects\nwhich group is used; if none matches, the default group is used.",
        "type": "object",
        "properties": {
          "isDefault": {
            "description": "Whether this is the fallback group, used when a conversion's currency does not match any configured currency.\nExactly one currency group per targeting group must be the default.",
            "type": "boolean"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "revenues": {
            "description": "Revenue (what the advertiser pays the network) per conversion type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.RevenueParams"
            }
          },
          "tierCosts": {
            "description": "Affiliate payouts defined per tier. A tier is an affiliate performance level; all affiliates in a tier share\nthese payouts unless overridden by a source-specific cost below.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TierCostParams"
            }
          },
          "sourceCosts": {
            "description": "Optional per-source payout overrides. A source is an individual affiliate's traffic source; these amounts\noverride the tier payout for that specific source.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.SourceCostParams"
            }
          }
        },
        "required": [
          "isDefault",
          "currency",
          "revenues",
          "tierCosts"
        ]
      },
      "pricing.v1.NoValue": {
        "description": "Marker selecting \"no revenue value\" for a conversion type. Currently carries no fields.",
        "type": "object"
      },
      "pricing.v1.OnHold": {
        "description": "On-hold configuration for a conversion type. When present, newly tracked conversions of this type are withheld\nfor a review window (e.g. for fraud/quality checks) before being moved to their final status. Omit to confirm\nconversions immediately. Because the final status lives here, it can only be configured together with a hold period.",
        "type": "object",
        "properties": {
          "periodHours": {
            "description": "Length of the hold, in hours, counted from when the conversion is tracked.",
            "type": "integer",
            "format": "int32"
          },
          "finalConversionStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          }
        },
        "required": [
          "periodHours",
          "finalConversionStatus"
        ]
      },
      "pricing.v1.Qualification": {
        "description": "Rules deciding whether conversions of a conversion type \"qualify\" (count toward payout). Conversions that do not\nmeet the conditions are tracked but not paid out.",
        "type": "object",
        "properties": {
          "conditions": {
            "$ref": "#/components/schemas/pricing.v1.Qualification.Conditions"
          },
          "maxQualifiedConversionCount": {
            "description": "Optional cap on how many conversions may qualify. Once reached, further conversions stop qualifying. Unset means unlimited.",
            "type": "integer",
            "format": "int64"
          }
        },
        "required": [
          "conditions"
        ]
      },
      "pricing.v1.Qualification.Conditions": {
        "type": "object",
        "properties": {
          "currencyConditions": {
            "description": "Minimum-revenue thresholds, one per currency. Each currency may appear only once.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.Qualification.CurrencyCondition"
            }
          }
        },
        "required": [
          "currencyConditions"
        ]
      },
      "pricing.v1.Qualification.CurrencyCondition": {
        "description": "A minimum-revenue threshold for a single currency.",
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "minRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "currency",
          "minRevenue"
        ]
      },
      "pricing.v1.Revenue": {
        "description": "Read-back representation of RevenueParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "type": "string"
          },
          "revenue": {
            "$ref": "#/components/schemas/types.v1.AmountOrRate"
          },
          "noValue": {
            "$ref": "#/components/schemas/pricing.v1.NoValue"
          }
        },
        "required": [
          "conversionTypeId"
        ]
      },
      "pricing.v1.RevenueParams": {
        "description": "Revenue earned by the network for one conversion type, in the enclosing currency group's currency.",
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "description": "The conversion type this revenue applies to.",
            "type": "string"
          },
          "revenue": {
            "$ref": "#/components/schemas/types.v1.AmountOrRate"
          },
          "noValue": {
            "$ref": "#/components/schemas/pricing.v1.NoValue"
          }
        },
        "required": [
          "conversionTypeId"
        ]
      },
      "pricing.v1.SourceCost": {
        "description": "Read-back representation of SourceCostParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string"
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.Cost"
            }
          }
        },
        "required": [
          "sourceId",
          "costs"
        ]
      },
      "pricing.v1.SourceCostParams": {
        "description": "Per-source payout overrides, listed per conversion type. These take precedence over the tier payout for the source.",
        "type": "object",
        "properties": {
          "sourceId": {
            "description": "The source (an individual affiliate's traffic source) these payouts apply to.",
            "type": "string"
          },
          "costs": {
            "description": "Payout per conversion type for this source.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.CostParams"
            }
          }
        },
        "required": [
          "sourceId",
          "costs"
        ]
      },
      "pricing.v1.TargetingGroup": {
        "description": "Read-back representation of TargetingGroupParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingRule"
            }
          },
          "currencyGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.CurrencyGroup"
            }
          },
          "featured": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "rules",
          "currencyGroups",
          "featured"
        ]
      },
      "pricing.v1.TargetingGroupParams": {
        "description": "A targeting group bundles matching conditions together with the revenue/payout amounts that apply when those\nconditions match. Use multiple groups to charge or pay different rates for different traffic (e.g. by country\nor coupon). Groups are evaluated in order and the first one whose conditions match a conversion is used.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Human-readable name for this group, shown in the dashboard.",
            "type": "string"
          },
          "rules": {
            "description": "Conditions that decide whether this group applies to a conversion. A conversion matches the group if it matches\nANY one of the rules. An empty list makes the group apply to all conversions (a catch-all group).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingRule"
            }
          },
          "currencyGroups": {
            "description": "The rate tables for this group, split per currency. At least one is required and exactly one must be the default.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.CurrencyGroupParams"
            }
          },
          "featured": {
            "description": "Marks this as the primary group surfaced to affiliates by default. At most one group per pricing may be featured.",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "rules",
          "currencyGroups",
          "featured"
        ]
      },
      "pricing.v1.TargetingRule": {
        "description": "A single set of matching conditions for a targeting group. A conversion matches the rule only if it satisfies\nevery condition that is set (AND); at least one condition must be provided. A conversion matches the parent group\nif it matches any of the group's rules (OR).",
        "type": "object",
        "properties": {
          "locations": {
            "description": "Match by geographic location.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingRule.Location"
            }
          },
          "coupons": {
            "description": "Match by coupon code used.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.TargetingRule.Coupon"
            }
          },
          "conversionCount": {
            "$ref": "#/components/schemas/pricing.v1.TargetingRule.ConversionCount"
          },
          "customerIds": {
            "description": "Match specific customer ids.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "advS1s": {
            "description": "Match by advertiser-supplied tracking parameter S1 (adv_s1). Matches if the conversion's value is in the list.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "advS2s": {
            "description": "Match by advertiser-supplied tracking parameter S2 (adv_s2).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "advS3s": {
            "description": "Match by advertiser-supplied tracking parameter S3 (adv_s3).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "advS4s": {
            "description": "Match by advertiser-supplied tracking parameter S4 (adv_s4).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "advS5s": {
            "description": "Match by advertiser-supplied tracking parameter S5 (adv_s5).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affS1s": {
            "description": "Match by affiliate-supplied tracking parameter S1 (aff_s1). Matches if the conversion's value is in the list.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affS2s": {
            "description": "Match by affiliate-supplied tracking parameter S2 (aff_s2).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affS3s": {
            "description": "Match by affiliate-supplied tracking parameter S3 (aff_s3).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affS4s": {
            "description": "Match by affiliate-supplied tracking parameter S4 (aff_s4).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "affS5s": {
            "description": "Match by affiliate-supplied tracking parameter S5 (aff_s5).",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "pricing.v1.TargetingRule.ConversionCount": {
        "description": "Match by the conversion's position in the click's conversion sequence (e.g. apply only to the 2nd–3rd conversion on a click).",
        "type": "object",
        "properties": {
          "min": {
            "description": "Lowest conversion number (1-based) the rule applies to.",
            "type": "integer",
            "format": "int64"
          },
          "max": {
            "description": "Highest conversion number the rule applies to. Unset means no upper bound.",
            "type": "integer",
            "format": "int64"
          }
        },
        "required": [
          "min"
        ]
      },
      "pricing.v1.TargetingRule.Coupon": {
        "description": "Coupon match. A conversion matches if it used one of the listed coupon codes.",
        "type": "object",
        "properties": {
          "code": {
            "description": "The coupon code as entered by the customer.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Optional advertiser (revenue origin) the coupon is attributed to, used to credit the conversion to a specific advertiser.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ]
      },
      "pricing.v1.TargetingRule.Location": {
        "description": "Geographic match. A conversion matches if its location matches any entry in the list.",
        "type": "object",
        "properties": {
          "countryCode": {
            "description": "Two-letter ISO 3166-1 country code, uppercase (e.g. \"US\").",
            "type": "string"
          },
          "subdivisionCode": {
            "description": "Optional region/state code within the country.",
            "type": "string"
          },
          "city": {
            "type": "string",
            "title": "not supported yet"
          }
        },
        "required": [
          "countryCode"
        ]
      },
      "pricing.v1.TierCost": {
        "description": "Read-back representation of TierCostParams; see that message for field meanings.",
        "type": "object",
        "properties": {
          "tierId": {
            "type": "string"
          },
          "costs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.Cost"
            }
          }
        },
        "required": [
          "tierId",
          "costs"
        ]
      },
      "pricing.v1.TierCostParams": {
        "description": "Affiliate payouts for one tier, listed per conversion type.",
        "type": "object",
        "properties": {
          "tierId": {
            "description": "The affiliate tier (performance level) these payouts apply to.",
            "type": "string"
          },
          "costs": {
            "description": "Payout per conversion type for this tier.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/pricing.v1.CostParams"
            }
          }
        },
        "required": [
          "tierId",
          "costs"
        ]
      },
      "pricing.v1.UseDefaultCost": {
        "description": "Marker selecting the inherited default cost for a conversion type. Currently carries no fields.",
        "type": "object"
      },
      "reports.v1.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Internal ID"
          },
          "name": {
            "type": "string",
            "title": "Affiliate name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Affiliate account"
      },
      "reports.v1.AffiliateOverviewReportRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion statuses"
          },
          "columns": {
            "$ref": "#/components/schemas/reports.v1.ReportColumns"
          }
        },
        "title": "Affiliate report request"
      },
      "reports.v1.AffiliateOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.AffiliateOverviewReportResponse.Row"
            }
          },
          "total": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportTotal"
          },
          "filledColumns": {
            "description": "List of filled columns with real values. The rest are filled with zero values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "filledColumns"
        ],
        "title": "Affiliate report data"
      },
      "reports.v1.AffiliateOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/reports.v1.Account"
          },
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        }
      },
      "reports.v1.Category": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Category ID"
          },
          "name": {
            "type": "string",
            "title": "Category name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Category"
      },
      "reports.v1.ClickReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "cids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Click ID"
          },
          "externalCids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "External CID"
          },
          "countryCodes": {
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Traffic source IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Offer ID"
          },
          "ipAddresses": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "IP address of click's origin"
          },
          "referrer": {
            "type": "string",
            "title": "Referrer URL"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff s1 custom parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff s2 custom parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff s3 custom parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff s4 custom parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff s5 custom parameter"
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicionFilter"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Advertisers"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "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": "Click origin (type)"
          }
        },
        "title": "Click report filters"
      },
      "reports.v1.ClickReportRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          },
          "filters": {
            "$ref": "#/components/schemas/reports.v1.ClickReportFilters"
          }
        },
        "title": "Click report request"
      },
      "reports.v1.ClickReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Row"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ],
        "title": "Click report data"
      },
      "reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "External identifier ID"
          },
          "externalCid": {
            "type": "string",
            "title": "External click ID"
          },
          "revenueOriginId": {
            "type": "string",
            "title": "Click's revenue origin (or advertiser)"
          }
        },
        "title": "Click identifiers"
      },
      "reports.v1.ClickReportResponse.CustomParams": {
        "type": "object",
        "properties": {
          "affS1": {
            "type": "string",
            "title": "Aff s1 parameter"
          },
          "affS2": {
            "type": "string",
            "title": "Aff s2 parameter"
          },
          "affS3": {
            "type": "string",
            "title": "Aff s3 parameter"
          },
          "affS4": {
            "type": "string",
            "title": "Aff s4 parameter"
          },
          "affS5": {
            "type": "string",
            "title": "Aff s5 parameter"
          },
          "adClickId": {
            "$ref": "#/components/schemas/clicks.v1.AdClickId"
          }
        },
        "title": "Custom affiliate parameters"
      },
      "reports.v1.ClickReportResponse.Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Offer ID"
          },
          "name": {
            "type": "string",
            "title": "Offer name"
          }
        },
        "title": "Offer"
      },
      "reports.v1.ClickReportResponse.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Revenue origin/advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "Revenue origin/advertiser name"
          }
        },
        "title": "Revenue origin (or advertiser)"
      },
      "reports.v1.ClickReportResponse.Row": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp"
          },
          "cid": {
            "type": "string",
            "title": "Click ID"
          },
          "conversionSourceExternalIdentifier": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier"
          },
          "conversionSourceExternalIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClickReportResponse.ConversionSourceExternalIdentifier"
            },
            "title": "Click external IDs"
          },
          "countryCode": {
            "type": "string",
            "title": "Country code"
          },
          "source": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Source"
          },
          "offer": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.Offer"
          },
          "ipAddress": {
            "type": "string",
            "title": "IP address"
          },
          "userAgent": {
            "type": "string",
            "title": "Browser, OS and device"
          },
          "referrer": {
            "type": "string",
            "title": "Referrer URL"
          },
          "grossClickCount": {
            "type": "integer",
            "format": "int64",
            "title": "Gross click count"
          },
          "params": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.CustomParams"
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicion"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.ClickStatus"
          },
          "revenueOrigin": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.RevenueOrigin"
          },
          "type": {
            "$ref": "#/components/schemas/enums.v1.ClickType"
          },
          "targetingData": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData"
          },
          "anura": {
            "$ref": "#/components/schemas/types.v1.Anura"
          },
          "landingPage": {
            "$ref": "#/components/schemas/reports.v1.LandingPage"
          },
          "sourceExpiredAt": {
            "type": "string",
            "format": "date-time",
            "title": "Expired at timestamp"
          },
          "cookieExpiredAt": {
            "type": "string",
            "format": "date-time",
            "title": "Cookie expired at timestamp"
          }
        },
        "required": [
          "landingPage"
        ]
      },
      "reports.v1.ClickReportResponse.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Affiliate ID"
          },
          "publicId": {
            "type": "string",
            "title": "Affiliate public ID"
          }
        },
        "title": "Source affiliate"
      },
      "reports.v1.ClickReportResponse.TargetingData": {
        "type": "object",
        "properties": {
          "location": {
            "$ref": "#/components/schemas/locations.v1.Location"
          },
          "language": {
            "type": "string"
          },
          "device": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData.Device"
          },
          "operatingSystem": {
            "$ref": "#/components/schemas/reports.v1.ClickReportResponse.TargetingData.OperatingSystem"
          }
        },
        "title": "Click properties applied during LP targeting"
      },
      "reports.v1.ClickReportResponse.TargetingData.Device": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/enums.v1.Device"
          }
        },
        "required": [
          "value"
        ]
      },
      "reports.v1.ClickReportResponse.TargetingData.OperatingSystem": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/enums.v1.OperatingSystem"
          }
        },
        "required": [
          "value"
        ]
      },
      "reports.v1.ClientMetrics": {
        "type": "object",
        "properties": {
          "integers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClientMetrics.Integer"
            },
            "title": "Client metrics with integer value"
          },
          "decimals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ClientMetrics.Decimal"
            },
            "title": "Client metrics with decimal value"
          }
        },
        "required": [
          "integers",
          "decimals"
        ],
        "title": "Client metrics"
      },
      "reports.v1.ClientMetrics.Decimal": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "Client metric code"
          },
          "value": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "code",
          "value"
        ],
        "title": "Client metrics with decimal value"
      },
      "reports.v1.ClientMetrics.Integer": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "title": "Client metric code"
          },
          "value": {
            "type": "string",
            "format": "int64",
            "title": "Client metric value"
          }
        },
        "required": [
          "code",
          "value"
        ],
        "title": "Client metrics with integer value"
      },
      "reports.v1.ConversionDrilldown": {
        "description": "Specifies which conversion types and statuses to break down separately in the report response.\nWhen set, each row additionally contains per-type and per-status conversion metrics\nalongside the aggregated totals.",
        "type": "object",
        "properties": {
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types to include in the breakdown"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion statuses to include in the breakdown"
          }
        },
        "title": "Conversion drilldown"
      },
      "reports.v1.ConversionReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "conversionIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion IDs"
          },
          "cids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Click IDs"
          },
          "externalCids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "External click IDs"
          },
          "couponCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Coupon codes"
          },
          "countryCodes": {
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Source IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Offer IDs"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion sources"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types"
          },
          "conversionSourceTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Traffic source types"
          },
          "externalIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "External IDs"
          },
          "customerIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Customer IDs"
          },
          "advS1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom adv s1 parameter"
          },
          "advS2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom adv s2 parameter"
          },
          "advS3s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom adv s3 parameter"
          },
          "advS4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom adv s4 parameter"
          },
          "advS5s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom adv s5 parameter"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom aff s1 parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom aff s2 parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom aff s3 parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom aff s4 parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Custom aff s5 parameter"
          },
          "currencyCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Currency codes. Uses ISO 4217 format"
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicionFilter"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Advertisers"
          },
          "settlementIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Settlement IDs"
          },
          "accountSettlementIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Self-billing invoice IDs"
          },
          "claimIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Claim IDs"
          },
          "conversionTypeCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion type codes"
          },
          "qualified": {
            "type": "boolean",
            "title": "Filters qualified/unqualified conversions"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs"
          }
        },
        "title": "Filters for conversion report"
      },
      "reports.v1.ConversionReportRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.PaginationParams"
          },
          "filters": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportFilters"
          }
        },
        "title": "Conversion report request"
      },
      "reports.v1.ConversionReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.Row"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "pagination"
        ],
        "title": "Conversion report data"
      },
      "reports.v1.ConversionReportResponse.ConversionSourceCustomParams": {
        "type": "object",
        "properties": {
          "affS1": {
            "type": "string",
            "title": "Custom aff s1 parameter"
          },
          "affS2": {
            "type": "string",
            "title": "Custom aff s2 parameter"
          },
          "affS3": {
            "type": "string",
            "title": "Custom aff s3 parameter"
          },
          "affS4": {
            "type": "string",
            "title": "Custom aff s4 parameter"
          },
          "affS5": {
            "type": "string",
            "title": "Custom aff s5 parameter"
          }
        },
        "title": "Custom affiliate parameters"
      },
      "reports.v1.ConversionReportResponse.ConversionType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Conversion type ID"
          },
          "name": {
            "type": "string",
            "title": "Conversion type name"
          }
        },
        "title": "Conversion type"
      },
      "reports.v1.ConversionReportResponse.CustomParams": {
        "type": "object",
        "properties": {
          "advS1": {
            "type": "string",
            "title": "Custom adv s1 parameter"
          },
          "advS2": {
            "type": "string",
            "title": "Custom adv s2 parameter"
          },
          "advS3": {
            "type": "string",
            "title": "Custom adv s3 parameter"
          },
          "advS4": {
            "type": "string",
            "title": "Custom adv s4 parameter"
          },
          "advS5": {
            "type": "string",
            "title": "Custom adv s5 parameter"
          }
        },
        "title": "Custom advertiser parameters"
      },
      "reports.v1.ConversionReportResponse.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "Advertiser name"
          }
        },
        "title": "Revenue origin / advertiser"
      },
      "reports.v1.ConversionReportResponse.Row": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp of conversion's creation"
          },
          "conversionId": {
            "type": "string",
            "title": "Conversion ID"
          },
          "cid": {
            "type": "string",
            "title": "Click ID"
          },
          "externalCid": {
            "type": "string",
            "title": "External click ID"
          },
          "couponCode": {
            "type": "string",
            "title": "Coupon code"
          },
          "countryCode": {
            "type": "string",
            "title": "Country code"
          },
          "source": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.Source"
          },
          "offer": {
            "$ref": "#/components/schemas/reports.v1.Offer"
          },
          "landingPage": {
            "$ref": "#/components/schemas/reports.v1.LandingPage"
          },
          "conversionStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "conversionType": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.ConversionType"
          },
          "conversionSourceType": {
            "type": "string",
            "title": "Traffic source type"
          },
          "conversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "cost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "normalizedRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "normalizedCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "originalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "originalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenueUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp of last revenue adjustment"
          },
          "costUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "title": "Timestamp of last payout to affiliate adjustment"
          },
          "customPayoutsApplied": {
            "type": "boolean",
            "title": "Custom payouts override automatically calculated values"
          },
          "currencyCode": {
            "type": "string",
            "title": "Currency code"
          },
          "externalId": {
            "type": "string",
            "title": "External ID"
          },
          "customerId": {
            "type": "string",
            "title": "Customer ID"
          },
          "params": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.CustomParams"
          },
          "conversionSourceParams": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.ConversionSourceCustomParams"
          },
          "settlementId": {
            "type": "string",
            "title": "Settlement ID"
          },
          "accountSettlementId": {
            "type": "string",
            "title": "Self-billing invoice ID"
          },
          "fraudSuspicion": {
            "$ref": "#/components/schemas/types.v1.FraudSuspicion"
          },
          "onHoldUntil": {
            "type": "string",
            "format": "date-time",
            "title": "On-hold period end timestamp"
          },
          "revenueOrigin": {
            "$ref": "#/components/schemas/reports.v1.ConversionReportResponse.RevenueOrigin"
          },
          "claimId": {
            "type": "string",
            "title": "Claim ID"
          },
          "revenueAdjustmentName": {
            "description": "Revenue adjustment name. Revenue was adjusted only if it was filled.",
            "type": "string"
          },
          "costAdjustmentName": {
            "description": "Affiliate's payout adjustment name. Affiliate's payout was adjusted only if it was filled.",
            "type": "string"
          },
          "normalizedConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "normalizedExchangeRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "qualified": {
            "description": "Designates if conversion is qualified.",
            "type": "boolean"
          }
        }
      },
      "reports.v1.ConversionReportResponse.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Affiliate ID"
          },
          "publicId": {
            "type": "string",
            "title": "Affiliate public ID"
          }
        },
        "title": "Source affiliate"
      },
      "reports.v1.CountryOverviewReportRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion statuses"
          },
          "columns": {
            "$ref": "#/components/schemas/reports.v1.ReportColumns"
          }
        },
        "title": "Country overview report request"
      },
      "reports.v1.CountryOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.CountryOverviewReportResponse.Row"
            }
          },
          "total": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportTotal"
          },
          "filledColumns": {
            "description": "List of filled columns with real values. The rest are filled with zero values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "filledColumns"
        ],
        "title": "Country overview report data"
      },
      "reports.v1.CountryOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "countryCode": {
            "description": "Country code. Uses ISO 3166-1 alpha-2 (two-letter) format.",
            "type": "string"
          },
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        }
      },
      "reports.v1.Coupon": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Coupon ID"
          },
          "code": {
            "type": "string",
            "title": "Coupon code"
          }
        },
        "required": [
          "id",
          "code"
        ],
        "title": "Coupon"
      },
      "reports.v1.DailyOverviewReportRequest": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "title": "Start date of reported days"
          },
          "to": {
            "type": "string",
            "title": "End day of reported days"
          },
          "timezone": {
            "type": "string",
            "title": "Timezone to offset in reports"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types present in the report"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            }
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "columns": {
            "$ref": "#/components/schemas/reports.v1.ReportColumns"
          },
          "clientMetricCodes": {
            "description": "Optional requested client metrics. All columns selected if not set.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "from",
          "to",
          "timezone"
        ],
        "title": "Daily overview report request"
      },
      "reports.v1.DailyOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.DailyOverviewReportResponse.Row"
            }
          },
          "total": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
          },
          "filledColumns": {
            "description": "List of filled columns with real values. The rest are filled with zero values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "rows",
          "total",
          "filledColumns"
        ],
        "title": "Daily overview data"
      },
      "reports.v1.DailyOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "title": "Date"
          },
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clickFraudRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionFraudRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clientMetrics": {
            "$ref": "#/components/schemas/reports.v1.ClientMetrics"
          }
        },
        "required": [
          "date",
          "clickCount",
          "grossClickCount",
          "couponCount",
          "conversionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "totalCommissionAmount",
          "profit",
          "advertiserProfit",
          "conversionPerClickRate",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "conversionAmountPerClick",
          "revenuePerClick",
          "costPerClick",
          "averageCommissionAmount",
          "clickFraudRate",
          "conversionFraudRate"
        ]
      },
      "reports.v1.GeneralOverviewReportFilters": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion statuses"
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Traffic source IDs"
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Account IDs"
          },
          "countryCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Country codes"
          },
          "revenueOriginIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Revenue origin IDs"
          },
          "offerIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Offer IDs"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Category IDs"
          },
          "tierIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Tier IDs"
          },
          "landingPageIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Landing page IDs"
          },
          "couponIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Coupon IDs"
          },
          "affiliateManagerId": {
            "type": "string",
            "title": "Affiliate manager ID"
          },
          "advS1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Adv S1 parameter"
          },
          "advS2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Adv S2 parameter"
          },
          "advS3s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Adv S3 parameter"
          },
          "advS4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Adv S4 parameter"
          },
          "advS5s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Adv S5 parameter"
          },
          "affS1s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff S1 parameter"
          },
          "affS2s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff S2 parameter"
          },
          "affS3s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff S3 parameter"
          },
          "affS4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff S4 parameter"
          },
          "affS5s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Aff S5 parameter"
          },
          "smartLinkIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Smart link IDs"
          },
          "offerTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by offers having at least one of these tag IDs"
          },
          "affiliateTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by affiliates having at least one of these tag IDs"
          },
          "revenueOriginTagIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs"
          }
        },
        "required": [
          "timeRange"
        ],
        "title": "General report filters"
      },
      "reports.v1.GeneralOverviewReportRequest": {
        "type": "object",
        "properties": {
          "filters": {
            "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportFilters"
          },
          "groupingLevels": {
            "description": "Grouping levels for the report.\n\nOnly a single grouping level is currently supported, so the report is grouped by one dimension at a time.\nTo retrieve lower-depth data, send another request with the next grouping level and an additional filter\nthat narrows the results to the parent row you want to break down.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportGrouping"
            }
          },
          "conversionDrilldown": {
            "$ref": "#/components/schemas/reports.v1.ConversionDrilldown"
          },
          "columns": {
            "$ref": "#/components/schemas/reports.v1.ReportColumns"
          },
          "clientMetricCodes": {
            "description": "Optional requested client metrics. All columns selected if not set.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timezone": {
            "type": "string",
            "title": "Timezone to offset in reports"
          }
        },
        "required": [
          "filters",
          "groupingLevels",
          "timezone"
        ],
        "title": "General overview request"
      },
      "reports.v1.GeneralOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.Row"
            }
          },
          "total": {
            "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.Total"
          },
          "filledColumns": {
            "description": "List of filled columns with real values. The rest are filled with zero values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "rows",
          "total",
          "filledColumns"
        ],
        "title": "General overview data"
      },
      "reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues": {
        "type": "object",
        "properties": {
          "conversionTypeId": {
            "type": "string"
          },
          "conversionStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageClickConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageClickRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageClickCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "conversionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "profit",
          "advertiserProfit",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "averageClickConversionAmount",
          "averageClickRevenue",
          "averageClickCost"
        ]
      },
      "reports.v1.GeneralOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "values": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
          },
          "conversionDrilldownValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues"
            }
          },
          "subRows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.Row"
            }
          },
          "hour": {
            "type": "string",
            "format": "date-time"
          },
          "day": {
            "type": "string",
            "format": "date-time"
          },
          "week": {
            "type": "string",
            "format": "date-time"
          },
          "month": {
            "type": "string",
            "format": "date-time"
          },
          "year": {
            "type": "string",
            "format": "date-time"
          },
          "account": {
            "$ref": "#/components/schemas/reports.v1.Account"
          },
          "countryCode": {
            "type": "string"
          },
          "offer": {
            "$ref": "#/components/schemas/reports.v1.Offer"
          },
          "revenueOrigin": {
            "$ref": "#/components/schemas/reports.v1.RevenueOrigin"
          },
          "affiliateManagerAccount": {
            "$ref": "#/components/schemas/reports.v1.Account"
          },
          "category": {
            "$ref": "#/components/schemas/reports.v1.Category"
          },
          "coupon": {
            "$ref": "#/components/schemas/reports.v1.Coupon"
          },
          "landingPage": {
            "$ref": "#/components/schemas/reports.v1.LandingPage"
          },
          "source": {
            "$ref": "#/components/schemas/reports.v1.Source"
          },
          "tier": {
            "$ref": "#/components/schemas/reports.v1.Tier"
          },
          "advS1": {
            "type": "string"
          },
          "advS2": {
            "type": "string"
          },
          "advS3": {
            "type": "string"
          },
          "advS4": {
            "type": "string"
          },
          "advS5": {
            "type": "string"
          },
          "affS1": {
            "type": "string"
          },
          "affS2": {
            "type": "string"
          },
          "affS3": {
            "type": "string"
          },
          "affS4": {
            "type": "string"
          },
          "affS5": {
            "type": "string"
          },
          "smartLink": {
            "$ref": "#/components/schemas/reports.v1.SmartLink"
          }
        },
        "required": [
          "values"
        ]
      },
      "reports.v1.GeneralOverviewReportResponse.Total": {
        "type": "object",
        "properties": {
          "values": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportValues"
          },
          "conversionDrilldownValues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.GeneralOverviewReportResponse.ConversionDrilldownValues"
            }
          }
        },
        "required": [
          "values"
        ]
      },
      "reports.v1.LandingPage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Internal ID"
          },
          "name": {
            "type": "string",
            "title": "Landing page name"
          },
          "url": {
            "type": "string",
            "title": "Landing page URL"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ],
        "title": "Landing page"
      },
      "reports.v1.Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Offer ID"
          },
          "name": {
            "type": "string",
            "title": "Offer name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Offer"
      },
      "reports.v1.OfferOverviewReportRequest": {
        "type": "object",
        "properties": {
          "timeRange": {
            "$ref": "#/components/schemas/types.v1.TimeRange"
          },
          "conversionTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Conversion types"
          },
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            },
            "title": "Conversion statuses"
          },
          "sourceIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Traffic source IDs"
          },
          "columns": {
            "$ref": "#/components/schemas/reports.v1.ReportColumns"
          }
        },
        "title": "Offer report request"
      },
      "reports.v1.OfferOverviewReportResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reports.v1.OfferOverviewReportResponse.Row"
            }
          },
          "total": {
            "$ref": "#/components/schemas/reports.v1.OverviewReportTotal"
          },
          "filledColumns": {
            "description": "List of filled columns with real values. The rest are filled with zero values.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "filledColumns"
        ],
        "title": "Offer report data"
      },
      "reports.v1.OfferOverviewReportResponse.Row": {
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/reports.v1.Offer"
          },
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        }
      },
      "reports.v1.OverviewReportTotal": {
        "type": "object",
        "properties": {
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "title": "Overview report total"
      },
      "reports.v1.OverviewReportValues": {
        "type": "object",
        "properties": {
          "clickCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of clicks"
          },
          "grossClickCount": {
            "type": "string",
            "format": "int64",
            "title": "Gross number of clicks"
          },
          "couponCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of coupon uses"
          },
          "conversionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of conversions"
          },
          "commissionCount": {
            "type": "string",
            "format": "int64",
            "title": "Number of MLM commissions"
          },
          "totalConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "totalCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "profit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "advertiserProfit": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionPerClickRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageConversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageRevenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmountPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuePerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "costPerClick": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "averageCommissionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clickFraudRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionFraudRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "clientMetrics": {
            "$ref": "#/components/schemas/reports.v1.ClientMetrics"
          }
        },
        "required": [
          "clickCount",
          "grossClickCount",
          "couponCount",
          "conversionCount",
          "commissionCount",
          "totalConversionAmount",
          "totalRevenue",
          "totalCost",
          "totalCommissionAmount",
          "profit",
          "advertiserProfit",
          "conversionPerClickRate",
          "averageConversionAmount",
          "averageRevenue",
          "averageCost",
          "conversionAmountPerClick",
          "revenuePerClick",
          "costPerClick",
          "averageCommissionAmount",
          "clickFraudRate",
          "conversionFraudRate"
        ],
        "title": "Overview report values"
      },
      "reports.v1.ReportColumns": {
        "type": "object",
        "properties": {
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.ReportColumn"
            }
          }
        },
        "required": [
          "columns"
        ],
        "title": "Requested report columns"
      },
      "reports.v1.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Advertiser ID"
          },
          "name": {
            "type": "string",
            "title": "Advertiser name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Advertiser"
      },
      "reports.v1.SmartLink": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Smart link ID"
          },
          "name": {
            "type": "string",
            "title": "Smart link name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Smart link"
      },
      "reports.v1.Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Source ID"
          },
          "publicId": {
            "type": "string",
            "title": "Affiliate public ID"
          }
        },
        "required": [
          "id",
          "publicId"
        ],
        "title": "Source"
      },
      "reports.v1.Tier": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Tier ID"
          },
          "name": {
            "type": "string",
            "title": "Tier name"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "title": "Tier"
      },
      "revenue_origin_billing.v1.Claim": {
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of advertiser settlement.",
            "type": "string"
          },
          "revenueOrigin": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.Claim.RevenueOrigin"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "until": {
            "description": "Settled until date.",
            "type": "string",
            "format": "date-time"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.Claim.BillingDetail"
          },
          "tenantBillingDetail": {
            "$ref": "#/components/schemas/settings.v1.BillingDetail"
          },
          "paymentMethodForAdvertiser": {
            "description": "Advertiser payment method information.",
            "type": "string"
          },
          "note": {
            "description": "Optional note for the settlement.",
            "type": "string"
          },
          "createdAt": {
            "description": "Date of settlement creation.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "revenueOrigin",
          "amount",
          "currency",
          "until",
          "billingDetail",
          "tenantBillingDetail",
          "note",
          "createdAt"
        ]
      },
      "revenue_origin_billing.v1.Claim.BillingDetail": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of advertiser.",
            "type": "string"
          },
          "addressLine1": {
            "description": "Address line 1.",
            "type": "string"
          },
          "city": {
            "description": "City.",
            "type": "string"
          },
          "countryCode": {
            "description": "Country code.",
            "type": "string"
          },
          "postalCode": {
            "description": "Postal code.",
            "type": "string"
          },
          "addressLine2": {
            "description": "Address line 2.",
            "type": "string"
          },
          "invoicingEmail": {
            "description": "Invoicing email.",
            "type": "string"
          },
          "vat": {
            "description": "VAT number.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "addressLine1",
          "city",
          "countryCode",
          "postalCode"
        ]
      },
      "revenue_origin_billing.v1.Claim.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Advertiser ID.",
            "type": "string"
          },
          "name": {
            "description": "Name of advertiser.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "revenue_origin_billing.v1.ClaimBalancesRequest": {
        "type": "object",
        "properties": {
          "filter": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.RevenueOriginOpenBalanceFilter"
          },
          "revenueOriginId": {
            "description": "Advertiser ID.",
            "type": "string"
          },
          "note": {
            "description": "Optional note.",
            "type": "string"
          }
        },
        "required": [
          "filter",
          "revenueOriginId",
          "note"
        ]
      },
      "revenue_origin_billing.v1.ClaimBalancesResponse": {
        "type": "object",
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.Claim"
          }
        },
        "required": [
          "claim"
        ]
      },
      "revenue_origin_billing.v1.DeleteClaimResponse": {
        "type": "object"
      },
      "revenue_origin_billing.v1.GetClaimResponse": {
        "type": "object",
        "properties": {
          "claim": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.Claim"
          }
        },
        "required": [
          "claim"
        ]
      },
      "revenue_origin_billing.v1.ListClaimsResponse": {
        "type": "object",
        "properties": {
          "claims": {
            "description": "Advertiser settlements.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/revenue_origin_billing.v1.Claim"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "claims",
          "pagination"
        ]
      },
      "revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse": {
        "type": "object",
        "properties": {
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse.Balance"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "balances",
          "pagination"
        ]
      },
      "revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse.Balance": {
        "type": "object",
        "properties": {
          "revenueOrigin": {
            "$ref": "#/components/schemas/revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse.RevenueOrigin"
          },
          "openBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "onHoldBalance": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "hasBillingDetails": {
            "description": "Designates if advertiser billing details are present.",
            "type": "boolean"
          }
        },
        "required": [
          "revenueOrigin",
          "openBalance",
          "onHoldBalance",
          "hasBillingDetails"
        ]
      },
      "revenue_origin_billing.v1.ListRevenueOriginOpenBalancesResponse.RevenueOrigin": {
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of specific advertiser.",
            "type": "string"
          },
          "name": {
            "description": "Name of specific advertiser.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "revenue_origin_billing.v1.RevenueOriginOpenBalanceFilter": {
        "description": "Filter criteria for advertiser open balances.",
        "type": "object",
        "properties": {
          "until": {
            "description": "Include balances up to this date.",
            "type": "string",
            "format": "date-time"
          },
          "minAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenueOriginTagIds": {
            "description": "Filter rows by advertisers (revenue origins) having at least one of these tag IDs assigned (OR semantics).",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "until"
        ]
      },
      "revenue_origins.v1.CreateRevenueOriginRequest": {
        "description": "Create advertiser.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the advertiser.",
            "type": "string"
          },
          "email": {
            "description": "Email of the advertiser.",
            "type": "string"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOriginBillingDetail"
          },
          "adminNote": {
            "description": "Admin note to the advertiser.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "email",
          "billingDetail",
          "adminNote"
        ]
      },
      "revenue_origins.v1.CreateRevenueOriginResponse": {
        "description": "Details of the created advertiser.",
        "type": "object",
        "properties": {
          "revenueOrigin": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOrigin"
          }
        },
        "required": [
          "revenueOrigin"
        ]
      },
      "revenue_origins.v1.ListRevenueOriginsRequest": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/types.v1.OptionalPaginationParams"
          },
          "filters": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOriginsFilters"
          }
        },
        "title": "List advertisers in the system"
      },
      "revenue_origins.v1.ListRevenueOriginsResponse": {
        "type": "object",
        "properties": {
          "revenueOrigins": {
            "description": "Advertisers.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/revenue_origins.v1.RevenueOrigin"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/types.v1.Pagination"
          }
        },
        "required": [
          "revenueOrigins",
          "pagination"
        ],
        "title": "List of advertisers matching the pagination and filters"
      },
      "revenue_origins.v1.RevenueOrigin": {
        "description": "Advertiser.",
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the advertiser.",
            "type": "string"
          },
          "name": {
            "description": "Name of the advertiser.",
            "type": "string"
          },
          "email": {
            "description": "Email of the advertiser.",
            "type": "string"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOrigin.BillingDetail"
          },
          "adminNote": {
            "description": "Admin note to the advertiser.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.RevenueOriginStatus"
          },
          "account": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOrigin.Account"
          },
          "tagIds": {
            "description": "IDs of tags assigned to the revenue origin.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "name",
          "email",
          "adminNote",
          "status"
        ]
      },
      "revenue_origins.v1.RevenueOrigin.Account": {
        "description": "Account of the advertiser.",
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the account.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          }
        },
        "required": [
          "id",
          "status"
        ]
      },
      "revenue_origins.v1.RevenueOrigin.BillingDetail": {
        "description": "Billing details of the advertiser.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Full name on the billing details.",
            "type": "string"
          },
          "addressLine1": {
            "description": "First line of the address.",
            "type": "string"
          },
          "city": {
            "description": "City of the address.",
            "type": "string"
          },
          "countryCode": {
            "description": "Country code for the address. Uses ISO-3166, two letter formatting.",
            "type": "string"
          },
          "postalCode": {
            "description": "Postal code of the address.",
            "type": "string"
          },
          "addressLine2": {
            "description": "Second line of the address.",
            "type": "string"
          },
          "invoicingEmail": {
            "description": "Email used for invoicing.",
            "type": "string"
          },
          "vat": {
            "description": "VAT information.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "addressLine1",
          "city",
          "countryCode",
          "postalCode"
        ]
      },
      "revenue_origins.v1.RevenueOriginBillingDetail": {
        "description": "Billing details of the advertiser.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Full name on the billing details.",
            "type": "string"
          },
          "addressLine1": {
            "description": "First line of the address.",
            "type": "string"
          },
          "city": {
            "description": "City of the address.",
            "type": "string"
          },
          "countryCode": {
            "description": "Country code for the address. Uses ISO-3166, two letter formatting.",
            "type": "string"
          },
          "postalCode": {
            "description": "Postal code of the address.",
            "type": "string"
          },
          "addressLine2": {
            "description": "Second line of the address.",
            "type": "string"
          },
          "invoicingEmail": {
            "description": "Email used for invoicing.",
            "type": "string"
          },
          "vat": {
            "description": "VAT information.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "addressLine1",
          "city",
          "countryCode",
          "postalCode"
        ]
      },
      "revenue_origins.v1.RevenueOriginsFilters": {
        "description": "Filters available for advertisers.",
        "type": "object",
        "properties": {
          "ids": {
            "description": "IDs of advertisers to be filtered.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emails": {
            "description": "Emails of advertisers to be filtered.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "description": "Name of advertisers to be filtered.",
            "type": "string"
          },
          "hasAccount": {
            "description": "Advertisers with or without account to be filtered.",
            "type": "boolean"
          },
          "tagIds": {
            "description": "IDs of tags to filter advertisers by.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "revenue_origins.v1.RevenueOriginsService.UpdateRevenueOriginBody": {
        "description": "Update advertiser.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the advertiser.",
            "type": "string"
          },
          "billingDetail": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOriginBillingDetail"
          },
          "adminNote": {
            "description": "Admin note to the advertiser.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "billingDetail",
          "adminNote"
        ]
      },
      "revenue_origins.v1.UpdateRevenueOriginResponse": {
        "description": "Details of the updated advertiser.",
        "type": "object",
        "properties": {
          "revenueOrigin": {
            "$ref": "#/components/schemas/revenue_origins.v1.RevenueOrigin"
          }
        },
        "required": [
          "revenueOrigin"
        ]
      },
      "settings.v1.AdminAccessStatus": {
        "type": "string",
        "default": "ADMIN_ACCESS_STATUS_UNSPECIFIED",
        "enum": [
          "ADMIN_ACCESS_STATUS_UNSPECIFIED",
          "ADMIN_ACCESS_STATUS_ALLOWED_PERMANENTLY",
          "ADMIN_ACCESS_STATUS_ALLOWED_TILL_NEXT_REVENUE_CHECK",
          "ADMIN_ACCESS_STATUS_BLOCKED_DUE_TO_REVENUE_TILL_UPGRADE",
          "ADMIN_ACCESS_STATUS_BLOCKED_PERMANENTLY"
        ]
      },
      "settings.v1.AdvertiserParamsVisibility": {
        "type": "object",
        "properties": {
          "advS1": {
            "type": "boolean"
          },
          "advS2": {
            "type": "boolean"
          },
          "advS3": {
            "type": "boolean"
          },
          "advS4": {
            "type": "boolean"
          },
          "advS5": {
            "type": "boolean"
          },
          "externalId": {
            "type": "boolean"
          },
          "customerId": {
            "type": "boolean"
          },
          "externalCid": {
            "type": "boolean"
          },
          "ipAddress": {
            "type": "boolean"
          },
          "cid": {
            "type": "boolean"
          },
          "adClickId": {
            "type": "boolean"
          }
        },
        "required": [
          "advS1",
          "advS2",
          "advS3",
          "advS4",
          "advS5",
          "externalId",
          "customerId",
          "externalCid",
          "ipAddress",
          "cid",
          "adClickId"
        ]
      },
      "settings.v1.BillingDetail": {
        "description": "Billing details set for tenant (i.e. your company billing details).",
        "type": "object",
        "properties": {
          "name": {
            "description": "Legal name.",
            "type": "string"
          },
          "addressLine1": {
            "description": "Address.",
            "type": "string"
          },
          "city": {
            "description": "City.",
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "title": "Country code"
          },
          "postalCode": {
            "description": "Postal code.",
            "type": "string"
          },
          "addressLine2": {
            "description": "Additional address details.",
            "type": "string"
          },
          "invoicingEmail": {
            "description": "Invoicing email.",
            "type": "string"
          },
          "vat": {
            "description": "VAT number.",
            "type": "string"
          }
        }
      },
      "settings.v1.DefaultReportFiltering": {
        "type": "object",
        "properties": {
          "conversionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
            }
          }
        },
        "required": [
          "conversionStatuses"
        ]
      },
      "settings.v1.FeatureLimit": {
        "type": "object",
        "properties": {
          "featureId": {
            "$ref": "#/components/schemas/enums.v1.FeatureId"
          },
          "params": {
            "$ref": "#/components/schemas/settings.v1.FeatureLimit.Params"
          }
        }
      },
      "settings.v1.FeatureLimit.Params": {
        "type": "object",
        "properties": {
          "maxCount": {
            "type": "string",
            "format": "uint64"
          }
        }
      },
      "settings.v1.Firebase": {
        "type": "object",
        "properties": {
          "config": {
            "$ref": "#/components/schemas/settings.v1.FirebaseConfig"
          },
          "authEmulatorHost": {
            "type": "string"
          },
          "firestoreEmulatorHost": {
            "type": "string"
          },
          "storageEmulatorHost": {
            "type": "string"
          }
        }
      },
      "settings.v1.FirebaseConfig": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "appId": {
            "type": "string"
          },
          "authDomain": {
            "type": "string"
          },
          "measurementId": {
            "type": "string"
          },
          "messagingSenderId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "storageBucket": {
            "type": "string"
          }
        }
      },
      "settings.v1.GetTenantSettingsResponse": {
        "type": "object",
        "properties": {
          "environmentDomain": {
            "type": "string"
          },
          "firebase": {
            "$ref": "#/components/schemas/settings.v1.Firebase"
          },
          "turnstile": {
            "$ref": "#/components/schemas/settings.v1.Turnstile"
          },
          "tenantSettings": {
            "$ref": "#/components/schemas/settings.v1.TenantSettings"
          },
          "featureIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.FeatureId"
            }
          },
          "featureLimits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/settings.v1.FeatureLimit"
            }
          },
          "membership": {
            "$ref": "#/components/schemas/memberships.v1.Membership"
          },
          "googleCertifiedBaseDomain": {
            "type": "string"
          }
        },
        "required": [
          "environmentDomain",
          "membership",
          "googleCertifiedBaseDomain"
        ]
      },
      "settings.v1.OnboardingStatus": {
        "type": "string",
        "default": "ONBOARDING_STATUS_UNSPECIFIED",
        "enum": [
          "ONBOARDING_STATUS_UNSPECIFIED",
          "ONBOARDING_STATUS_ASSISTED_IMPLEMENTATION",
          "ONBOARDING_STATUS_ENTERPRISE",
          "ONBOARDING_STATUS_FINISHED",
          "ONBOARDING_STATUS_INITIAL",
          "ONBOARDING_STATUS_SELF_IMPLEMENTATION_APP_LOCKED",
          "ONBOARDING_STATUS_SELF_IMPLEMENTATION_APP_UNLOCKED",
          "ONBOARDING_STATUS_WELCOMED"
        ]
      },
      "settings.v1.PrivacyPolicy": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "visible": {
            "type": "boolean"
          }
        },
        "required": [
          "visible"
        ]
      },
      "settings.v1.PublicBillingDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "addressLine1": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "postalCode": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string"
          },
          "invoicingEmail": {
            "type": "string"
          },
          "vat": {
            "type": "string"
          }
        }
      },
      "settings.v1.SmartLinks": {
        "type": "object",
        "properties": {
          "visibleToAffiliates": {
            "type": "boolean"
          },
          "offersVisibleInReports": {
            "type": "boolean"
          }
        },
        "required": [
          "visibleToAffiliates",
          "offersVisibleInReports"
        ]
      },
      "settings.v1.TenantDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "websiteUrl": {
            "type": "string"
          }
        }
      },
      "settings.v1.TenantSettings": {
        "type": "object",
        "properties": {
          "lightModeLogoUrl": {
            "type": "string"
          },
          "darkModeLogoUrl": {
            "type": "string"
          },
          "faviconUrl": {
            "type": "string"
          },
          "termsAndConditionText": {
            "type": "string"
          },
          "billingDetails": {
            "$ref": "#/components/schemas/settings.v1.PublicBillingDetail"
          },
          "currencyCode": {
            "type": "string",
            "title": "Primary currency code"
          },
          "registeredAt": {
            "type": "string",
            "format": "date-time"
          },
          "loginEnabled": {
            "type": "boolean"
          },
          "loginAvailable": {
            "type": "boolean"
          },
          "trafficEnabled": {
            "type": "boolean"
          },
          "trafficAvailable": {
            "type": "boolean"
          },
          "timezone": {
            "type": "string"
          },
          "tenantDetail": {
            "$ref": "#/components/schemas/settings.v1.TenantDetail"
          },
          "membershipPlanId": {
            "$ref": "#/components/schemas/memberships.v1.PlanId"
          },
          "membershipPlatformId": {
            "$ref": "#/components/schemas/memberships.v1.PlatformId"
          },
          "fraudSuspicionsVisible": {
            "type": "boolean"
          },
          "referralEnabled": {
            "type": "boolean"
          },
          "adminAccessStatus": {
            "$ref": "#/components/schemas/settings.v1.AdminAccessStatus"
          },
          "colorTheme": {
            "$ref": "#/components/schemas/types.v1.ColorTheme"
          },
          "defaultTheme": {
            "$ref": "#/components/schemas/enums.v1.Theme"
          },
          "defaultLanguage": {
            "type": "string"
          },
          "affiliatesVatRequired": {
            "type": "boolean"
          },
          "tenantType": {
            "$ref": "#/components/schemas/settings.v1.TenantType"
          },
          "onboardingStatus": {
            "$ref": "#/components/schemas/settings.v1.OnboardingStatus"
          },
          "isAffiliateRateCostBasedOnConversionAmount": {
            "type": "boolean"
          },
          "membershipEndAt": {
            "type": "string",
            "format": "date-time"
          },
          "freeTrialActive": {
            "type": "boolean"
          },
          "marketplaceAccessOverridden": {
            "type": "boolean"
          },
          "advertiserParamsVisibility": {
            "$ref": "#/components/schemas/settings.v1.AdvertiserParamsVisibility"
          },
          "referralConversionSourceAccountVisible": {
            "type": "boolean"
          },
          "smartLinks": {
            "$ref": "#/components/schemas/settings.v1.SmartLinks"
          },
          "defaultReportFiltering": {
            "$ref": "#/components/schemas/settings.v1.DefaultReportFiltering"
          },
          "whitelabelEnabled": {
            "type": "boolean"
          },
          "defaultCustomDomain": {
            "type": "string"
          },
          "privacyPolicy": {
            "$ref": "#/components/schemas/settings.v1.PrivacyPolicy"
          }
        },
        "required": [
          "defaultTheme",
          "isAffiliateRateCostBasedOnConversionAmount",
          "advertiserParamsVisibility",
          "whitelabelEnabled",
          "privacyPolicy"
        ]
      },
      "settings.v1.TenantType": {
        "type": "string",
        "default": "TENANT_TYPE_UNSPECIFIED",
        "enum": [
          "TENANT_TYPE_UNSPECIFIED",
          "TENANT_TYPE_ECOMMERCE",
          "TENANT_TYPE_NETWORK"
        ]
      },
      "settings.v1.Turnstile": {
        "type": "object",
        "properties": {
          "siteKey": {
            "type": "string"
          }
        }
      },
      "stripe.v1.ListStripeIntegrationTransactionsResponse.TraceAction": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "result": {
            "type": "string"
          },
          "subactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/stripe.v1.ListStripeIntegrationTransactionsResponse.TraceAction"
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "tags.v1.CreateTagRequest": {
        "description": "Create a new tag.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the tag.",
            "type": "string"
          },
          "hexColorCode": {
            "description": "Color of the tag, uses HTML hex color code.",
            "type": "string"
          },
          "scopes": {
            "description": "Scopes the tag applies to.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.TagScope"
            }
          }
        },
        "required": [
          "name",
          "hexColorCode",
          "scopes"
        ]
      },
      "tags.v1.CreateTagResponse": {
        "description": "Feedback for create tag request.",
        "type": "object",
        "properties": {
          "tag": {
            "$ref": "#/components/schemas/tags.v1.Tag"
          }
        },
        "required": [
          "tag"
        ]
      },
      "tags.v1.DeleteTagResponse": {
        "description": "Feedback for delete tag request.",
        "type": "object"
      },
      "tags.v1.GetTagResponse": {
        "description": "Details of requested tag.",
        "type": "object",
        "properties": {
          "tag": {
            "$ref": "#/components/schemas/tags.v1.Tag"
          }
        },
        "required": [
          "tag"
        ]
      },
      "tags.v1.ListTagsResponse": {
        "description": "List of existing tags.",
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tags.v1.Tag"
            }
          }
        },
        "required": [
          "tags"
        ]
      },
      "tags.v1.Tag": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique identifier of the tag.",
            "type": "string"
          },
          "name": {
            "description": "Name of the tag.",
            "type": "string"
          },
          "hexColorCode": {
            "description": "Color of the tag, uses HTML hex color code.",
            "type": "string"
          },
          "scopes": {
            "description": "Scopes the tag applies to.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.TagScope"
            }
          }
        },
        "required": [
          "id",
          "name",
          "hexColorCode",
          "scopes"
        ],
        "title": "Tag"
      },
      "tiers.v1.CreateTierRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the tier.",
            "type": "string"
          },
          "defaultRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "name",
          "defaultRate"
        ],
        "title": "Create a new affiliate tier"
      },
      "tiers.v1.CreateTierResponse": {
        "description": "Create new affiliate response.",
        "type": "object",
        "properties": {
          "tier": {
            "$ref": "#/components/schemas/tiers.v1.Tier"
          }
        },
        "required": [
          "tier"
        ]
      },
      "tiers.v1.DeleteTierResponse": {
        "description": "Deletion request response.",
        "type": "object"
      },
      "tiers.v1.GetTierResponse": {
        "description": "Detail of requested affiliate tier.",
        "type": "object",
        "properties": {
          "tier": {
            "$ref": "#/components/schemas/tiers.v1.Tier"
          }
        },
        "required": [
          "tier"
        ]
      },
      "tiers.v1.ListTiersResponse": {
        "description": "List of all active tiers in the system.",
        "type": "object",
        "properties": {
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/tiers.v1.Tier"
            }
          }
        },
        "required": [
          "tiers"
        ]
      },
      "tiers.v1.Tier": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique identifier of the tier.",
            "type": "string"
          },
          "name": {
            "description": "Name of the tier.",
            "type": "string"
          },
          "defaultRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "default": {
            "description": "Designates if tier is the default that gets assigned to new affiliates, only one tier can be set as true.",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "defaultRate",
          "default"
        ],
        "title": "Affiliate tier"
      },
      "tiers.v1.TiersService.UpdateTierBody": {
        "description": "Update an existing affiliate tier.",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the tier.",
            "type": "string"
          },
          "defaultRate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "name",
          "defaultRate"
        ]
      },
      "tiers.v1.UpdateTierResponse": {
        "description": "Update existing affiliate tier response.",
        "type": "object",
        "properties": {
          "tier": {
            "$ref": "#/components/schemas/tiers.v1.Tier"
          }
        },
        "required": [
          "tier"
        ]
      },
      "tipalti.v1.CheckPaymentBatchStatusResponse": {
        "type": "object"
      },
      "tipalti.v1.CreatePaymentBatchResponse": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "title": "Unique ID of a payment batch"
          }
        }
      },
      "tipalti.v1.ListPayableAccountSettlementsResponse": {
        "type": "object",
        "properties": {
          "payableAccountSettlementIds": {
            "description": "Unique IDs of account settlements payable via Tipalti.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unpaidAccountSettlementIds": {
            "description": "Unique IDs of account settlements yet unpaid via Tipalti.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "tipalti.v1.TipaltiPaymentsService.CheckPaymentBatchStatusBody": {
        "type": "object",
        "properties": {
          "paymentBatchId": {
            "type": "string",
            "title": "Unique ID of a payment batch"
          }
        }
      },
      "tracking.v1.CreateClientRequest": {
        "type": "object",
        "properties": {
          "externalId": {
            "description": "Unique external ID of the client.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Assigned revenue origin. Can be obtained from unique trackdesk identifiers in the settings.",
            "type": "string"
          },
          "cid": {
            "description": "CID – the click ID associated with the conversion.",
            "type": "string"
          }
        },
        "required": [
          "externalId",
          "revenueOriginId",
          "cid"
        ],
        "title": "Create client"
      },
      "tracking.v1.CreateClientResponse": {
        "type": "object"
      },
      "tracking.v1.CreateConversionRequest": {
        "type": "object",
        "properties": {
          "cid": {
            "description": "The click identification associated with the conversion. When cid is filled, then external_cid/external_client_id cannot be filled.",
            "type": "string"
          },
          "externalCid": {
            "description": "External CID associated with the conversion. See [Conversion sources](#tag--tracking.v1.ConversionSourceService) for more details.\n\nwhen external_cid is filled, then revenue_origin_id must also be filled, and cid/external_client_id cannot be filled",
            "type": "string"
          },
          "externalClientId": {
            "description": "External client ID associated with the conversion.\n\nWhen external_client_id is filled, then revenue_origin_id must also be filled, and cid/external_cid cannot be filled",
            "type": "string"
          },
          "couponCodes": {
            "description": "Coupons to be redeemed within the conversion.\n\nwhen coupon codes are not empty, then revenue_origin_id must also be filled",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revenueOriginId": {
            "description": "Assigned revenue origin. Can be obtained from unique trackdesk identifiers in the settings.",
            "type": "string"
          },
          "conversionTypeCode": {
            "description": "Type of the conversion.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currency": {
            "$ref": "#/components/schemas/types.v1.Currency"
          },
          "externalId": {
            "description": "External ID  is used for deduplication of conversions. When the conversion is created with an External ID, no other conversion can be created with the same External ID.",
            "type": "string"
          },
          "customerId": {
            "description": "Customer ID, your specific custom identifier.",
            "type": "string"
          },
          "customParams": {
            "$ref": "#/components/schemas/conversions.v1.ConversionCustomParams"
          },
          "qualified": {
            "description": "Qualification baseline evaluation value - override default behavior.",
            "type": "boolean"
          },
          "createdAt": {
            "description": "The date-time when the conversion was created. Must be in the past. Uses RFC 3339 formatting (e.g. \"2036-07-21T17:32:28Z\"). If not provided, the current time-stamp will be used.",
            "type": "string",
            "format": "date-time"
          }
        },
        "title": "Create a new conversion"
      },
      "tracking.v1.CreateConversionResponse": {
        "description": "Feedback message for new conversion creation.",
        "type": "object",
        "properties": {
          "cid": {
            "description": "CID of the source click/coupon tied to the conversion. CID is available when conversion is successfully paired.",
            "type": "string"
          }
        }
      },
      "tracking.v1.RedeemCouponRequest": {
        "description": "Redeem a coupon and obtain a coupon redemption identifier for conversion attribution.",
        "type": "object",
        "properties": {
          "couponCodes": {
            "description": "List of coupon codes to attempt redemption for. The first matching coupon code will be used.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revenueOriginId": {
            "description": "Assigned revenue origin. Can be obtained from unique Trackdesk identifiers in the settings.",
            "type": "string"
          },
          "customParams": {
            "$ref": "#/components/schemas/tracking.v1.RedeemCouponRequest.CustomParams"
          }
        },
        "required": [
          "couponCodes",
          "revenueOriginId"
        ]
      },
      "tracking.v1.RedeemCouponRequest.CustomParams": {
        "description": "Custom affiliate parameters for coupon redemption tracking.",
        "type": "object",
        "properties": {
          "affS1": {
            "description": "Custom aff S1 parameter.",
            "type": "string"
          },
          "affS2": {
            "description": "Custom aff S2 parameter.",
            "type": "string"
          },
          "affS3": {
            "description": "Custom aff S3 parameter.",
            "type": "string"
          },
          "affS4": {
            "description": "Custom aff S4 parameter.",
            "type": "string"
          },
          "affS5": {
            "description": "Custom aff S5 parameter.",
            "type": "string"
          }
        }
      },
      "tracking.v1.RedeemCouponResponse": {
        "description": "Response containing the generated coupon redemption identifier for the redeemed coupon.",
        "type": "object",
        "properties": {
          "cid": {
            "description": "Coupon redemption identifier used for conversion attribution.",
            "type": "string"
          },
          "expiredAt": {
            "description": "Expiration timestamp for the coupon redemption identifier.",
            "type": "string",
            "format": "date-time"
          },
          "conversionAttributionType": {
            "$ref": "#/components/schemas/enums.v1.ConversionAttributionType"
          }
        },
        "required": [
          "cid",
          "expiredAt",
          "conversionAttributionType"
        ]
      },
      "tracking.v1.SetExternalCidRequest": {
        "description": "Add external CID to a conversion.",
        "type": "object",
        "properties": {
          "externalCid": {
            "description": "Unique external ID code.",
            "type": "string"
          },
          "revenueOriginId": {
            "description": "Assigned revenue origin. Can be obtained from unique trackdesk identifiers in the settings.",
            "type": "string"
          },
          "cid": {
            "description": "CID – the click ID associated with the conversion.",
            "type": "string"
          }
        }
      },
      "tracking.v1.SetExternalCidResponse": {
        "description": "Feedback for adding external ID.",
        "type": "object"
      },
      "tracking.v1.UpdateConversionRequest": {
        "description": "Update conversion.",
        "type": "object",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/tracking.v1.UpdateConversionRequest.Identifier"
          },
          "status": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "revenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "cost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "conversionAmount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "externalId": {
            "description": "External ID is used for deduplication of conversions. No other conversion can be created with the same External ID. Won't be changed if not filled.",
            "type": "string"
          },
          "customerId": {
            "description": "Customer ID, your specific custom identifier. Won't be changed if not filled.",
            "type": "string"
          },
          "customAdvParams": {
            "$ref": "#/components/schemas/tracking.v1.UpdateConversionRequest.ConversionCustomParams"
          },
          "customAffParams": {
            "$ref": "#/components/schemas/tracking.v1.UpdateConversionRequest.ConversionSourceCustomParams"
          }
        },
        "required": [
          "identifier"
        ]
      },
      "tracking.v1.UpdateConversionRequest.ConversionCustomParams": {
        "description": "Custom advertiser parameters assigned to a conversion.",
        "type": "object",
        "properties": {
          "advS1": {
            "description": "Custom adv S1 parameter assigned to a conversion. Won't be changed if not filled.",
            "type": "string"
          },
          "advS2": {
            "description": "Custom adv S2 parameter assigned to a conversion. Won't be changed if not filled.",
            "type": "string"
          },
          "advS3": {
            "description": "Custom adv S3 parameter assigned to a conversion. Won't be changed if not filled.",
            "type": "string"
          },
          "advS4": {
            "description": "Custom adv S4 parameter assigned to a conversion. Won't be changed if not filled.",
            "type": "string"
          },
          "advS5": {
            "description": "Custom adv S5 parameter assigned to a conversion. Won't be changed if not filled.",
            "type": "string"
          }
        }
      },
      "tracking.v1.UpdateConversionRequest.ConversionSourceCustomParams": {
        "description": "Custom affiliate parameters assigned to a conversion source.",
        "type": "object",
        "properties": {
          "affS1": {
            "description": "Custom aff S1 parameter assigned to a conversion source. Won't be changed if not filled.",
            "type": "string"
          },
          "affS2": {
            "description": "Custom aff S2 parameter assigned to a conversion source. Won't be changed if not filled.",
            "type": "string"
          },
          "affS3": {
            "description": "Custom aff S3 parameter assigned to a conversion source. Won't be changed if not filled.",
            "type": "string"
          },
          "affS4": {
            "description": "Custom aff S4 parameter assigned to a conversion source. Won't be changed if not filled.",
            "type": "string"
          },
          "affS5": {
            "description": "Custom aff S5 parameter assigned to a conversion source. Won't be changed if not filled.",
            "type": "string"
          }
        }
      },
      "tracking.v1.UpdateConversionRequest.Identifier": {
        "description": "Identifier of the conversion.",
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the conversion.",
            "type": "string"
          },
          "external": {
            "$ref": "#/components/schemas/tracking.v1.UpdateConversionRequest.Identifier.External"
          }
        }
      },
      "tracking.v1.UpdateConversionRequest.Identifier.External": {
        "description": "External identifier of the conversion.",
        "type": "object",
        "properties": {
          "revenueOriginId": {
            "description": "Revenue origin associated with the conversion. You can find this information in your unique trackdesk identifiers in the Settings.",
            "type": "string"
          },
          "externalId": {
            "description": "External ID associated with the conversion.",
            "type": "string"
          },
          "conversionTypeCode": {
            "description": "Code of the conversion type.",
            "type": "string"
          }
        }
      },
      "tracking.v1.UpdateConversionResponse": {
        "description": "Feedback message for update conversion.",
        "type": "object"
      },
      "tracking_links.v1.AffiliateParams": {
        "description": "Optional affiliate parameters that should be appended to the final URL\n(e.g., affS1..affS5). Only provided keys are appended.",
        "type": "object",
        "properties": {
          "affS1": {
            "type": "string"
          },
          "affS2": {
            "type": "string"
          },
          "affS3": {
            "type": "string"
          },
          "affS4": {
            "type": "string"
          },
          "affS5": {
            "type": "string"
          }
        }
      },
      "tracking_links.v1.BuildTrackingLinkRequest": {
        "type": "object",
        "properties": {
          "sourceId": {
            "description": "Affiliate identifier.",
            "type": "string"
          },
          "offerId": {
            "description": "Offer identifier.",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/tracking_links.v1.Target"
          },
          "affiliateParams": {
            "$ref": "#/components/schemas/tracking_links.v1.AffiliateParams"
          }
        },
        "required": [
          "sourceId",
          "offerId",
          "target"
        ]
      },
      "tracking_links.v1.BuildTrackingLinkResponse": {
        "type": "object",
        "properties": {
          "linkUrl": {
            "type": "string"
          }
        },
        "required": [
          "linkUrl"
        ]
      },
      "tracking_links.v1.DirectTarget": {
        "description": "Direct tracking type.",
        "type": "object",
        "properties": {
          "landingPageId": {
            "description": "The concrete landing page to send the user to (or its deep link).",
            "type": "string"
          },
          "deepLinkUrl": {
            "description": "Optional deep link URL to be used.",
            "type": "string"
          }
        },
        "required": [
          "landingPageId"
        ]
      },
      "tracking_links.v1.GoogleCertifiedRedirectTarget": {
        "description": "Google certified redirect tracking type.\n\nCertified Google tracking domain is an on-demand feature, that's not natively included in any subscription plan.\nIf you're interested in using it, please contact sales.",
        "type": "object",
        "properties": {
          "landingPageId": {
            "description": "The offer's landing page identifier used in the path.",
            "type": "string"
          },
          "deepLinkUrl": {
            "description": "Optional deep link URL to redirect to.",
            "type": "string"
          }
        },
        "required": [
          "landingPageId"
        ]
      },
      "tracking_links.v1.SystemRedirectTarget": {
        "description": "System redirect tracking type.",
        "type": "object",
        "properties": {
          "redirectDomain": {
            "description": "Redirect domain to use (e.g., redirect.example.com).",
            "type": "string"
          },
          "landingPageId": {
            "description": "Optional: target a specific landing page.",
            "type": "string"
          },
          "deepLinkUrl": {
            "description": "Optional deep link URL used only when landing_page_id is provided.",
            "type": "string"
          }
        }
      },
      "tracking_links.v1.Target": {
        "description": "Target describes WHICH kind of link to build and the required inputs for it.\nExactly one target must be set.",
        "type": "object",
        "properties": {
          "direct": {
            "$ref": "#/components/schemas/tracking_links.v1.DirectTarget"
          },
          "systemRedirect": {
            "$ref": "#/components/schemas/tracking_links.v1.SystemRedirectTarget"
          },
          "googleCertifiedRedirect": {
            "$ref": "#/components/schemas/tracking_links.v1.GoogleCertifiedRedirectTarget"
          }
        }
      },
      "types.v1.AmountOrRate": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "rate": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        }
      },
      "types.v1.Anura": {
        "type": "object",
        "properties": {
          "anuraScore": {
            "$ref": "#/components/schemas/enums.v1.AnuraScore"
          },
          "result": {
            "$ref": "#/components/schemas/types.v1.Anura.Result"
          }
        }
      },
      "types.v1.Anura.Result": {
        "type": "object",
        "properties": {
          "result": {
            "type": "string"
          },
          "mobile": {
            "type": "integer",
            "format": "int32"
          },
          "adblocker": {
            "type": "integer",
            "format": "int32"
          },
          "ruleSets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "types.v1.ColorTheme": {
        "type": "object",
        "properties": {
          "theme": {
            "type": "string"
          },
          "backgroundEnabled": {
            "type": "boolean"
          }
        }
      },
      "types.v1.Currency": {
        "type": "object",
        "properties": {
          "code": {
            "description": "The three-letter currency code defined in ISO 4217.",
            "type": "string"
          }
        }
      },
      "types.v1.CustomQuestionAnswer": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string"
          },
          "answer": {
            "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer"
          }
        },
        "required": [
          "question",
          "answer"
        ]
      },
      "types.v1.CustomQuestionAnswer.Answer": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "checkbox": {
            "type": "boolean"
          },
          "options": {
            "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer.Options"
          },
          "fileUpload": {
            "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer.Answer.FileUpload"
          }
        }
      },
      "types.v1.CustomQuestionAnswer.Answer.FileUpload": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "types.v1.CustomQuestionAnswer.Answer.Options": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "values"
        ]
      },
      "types.v1.CustomQuestionSettings": {
        "description": "Definition of a single custom question presented to applicants.",
        "type": "object",
        "properties": {
          "question": {
            "description": "The question text shown to the applicant (1-255 chars).",
            "type": "string"
          },
          "visibility": {
            "$ref": "#/components/schemas/enums.v1.QuestionVisibility"
          },
          "basicQuestion": {
            "$ref": "#/components/schemas/types.v1.CustomQuestionSettings.BasicQuestion"
          },
          "selectOptionQuestion": {
            "$ref": "#/components/schemas/types.v1.CustomQuestionSettings.SelectOptionQuestion"
          }
        },
        "required": [
          "question",
          "visibility"
        ]
      },
      "types.v1.CustomQuestionSettings.BasicQuestion": {
        "description": "A free-form question answered with a single value of the given answer type.",
        "type": "object",
        "properties": {
          "answerType": {
            "$ref": "#/components/schemas/enums.v1.AnswerType"
          }
        },
        "required": [
          "answerType"
        ]
      },
      "types.v1.CustomQuestionSettings.SelectOptionQuestion": {
        "description": "A question answered by choosing from a fixed set of options.",
        "type": "object",
        "properties": {
          "selectMultiple": {
            "description": "Whether the applicant may select more than one option.",
            "type": "boolean"
          },
          "options": {
            "description": "The options the applicant can choose from (1-20 entries, each 1-255 chars).",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "options"
        ]
      },
      "types.v1.Decimal": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          }
        }
      },
      "types.v1.FraudSuspicion": {
        "type": "object",
        "properties": {
          "isSuspected": {
            "type": "boolean"
          },
          "causes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/enums.v1.FraudDetectionRule"
            }
          }
        },
        "required": [
          "isSuspected",
          "causes"
        ]
      },
      "types.v1.FraudSuspicionFilter": {
        "type": "object",
        "properties": {
          "isSuspected": {
            "type": "boolean"
          }
        }
      },
      "types.v1.Messenger": {
        "type": "object",
        "properties": {
          "signal": {
            "$ref": "#/components/schemas/types.v1.Messenger.Signal"
          },
          "skype": {
            "$ref": "#/components/schemas/types.v1.Messenger.Skype"
          },
          "telegram": {
            "$ref": "#/components/schemas/types.v1.Messenger.Telegram"
          },
          "whatsapp": {
            "$ref": "#/components/schemas/types.v1.Messenger.Whatsapp"
          }
        }
      },
      "types.v1.Messenger.Signal": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "types.v1.Messenger.Skype": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          }
        }
      },
      "types.v1.Messenger.Telegram": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "types.v1.Messenger.Whatsapp": {
        "type": "object",
        "properties": {
          "phoneNumber": {
            "type": "string"
          }
        }
      },
      "types.v1.OptionalPaginationParams": {
        "description": "Pagination for a list request where the page size is optional.",
        "type": "object",
        "properties": {
          "limit": {
            "description": "Maximum number of items to return (1-500). Omit to use the endpoint's default page size.",
            "type": "integer",
            "format": "int64"
          },
          "offset": {
            "description": "Number of items to skip from the start of the result set.",
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "types.v1.Pagination": {
        "description": "Pagination details returned with a list response.",
        "type": "object",
        "properties": {
          "totalCount": {
            "description": "Total number of items matching the request across all pages. Unset when the total is not computed.",
            "type": "integer",
            "format": "int64"
          },
          "hasMore": {
            "description": "Whether more items are available beyond the current page.",
            "type": "boolean"
          }
        }
      },
      "types.v1.PaginationParams": {
        "description": "Pagination for a list request.",
        "type": "object",
        "properties": {
          "limit": {
            "description": "Maximum number of items to return (1-500).",
            "type": "integer",
            "format": "int64"
          },
          "offset": {
            "description": "Number of items to skip from the start of the result set.",
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "types.v1.SourcePublicId": {
        "description": "Only lowercase alphanumeric characters allowed.",
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          }
        }
      },
      "types.v1.TimeRange": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "webhooks.v1.CreateWebhookRequest": {
        "description": "Create a new webhook.",
        "type": "object",
        "properties": {
          "webhook": {
            "$ref": "#/components/schemas/webhooks.v1.Webhook"
          }
        },
        "required": [
          "webhook"
        ]
      },
      "webhooks.v1.CreateWebhookResponse": {
        "description": "Feedback for create webhook request.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true,
            "title": "Unique identifier of the webhook"
          }
        }
      },
      "webhooks.v1.DeleteWebhookResponse": {
        "description": "Feedback for delete webhook request.",
        "type": "object"
      },
      "webhooks.v1.Event": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "title": "Tenant ID associated with the webhooks"
          },
          "clickCreated": {
            "$ref": "#/components/schemas/clicks.v1.Click"
          },
          "conversionCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.ConversionCreated"
          },
          "affiliateCreated": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate"
          },
          "affiliateRegistrationDataCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateRegistrationDataCreated"
          },
          "affiliateStatusChanged": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateStatusChanged"
          },
          "affiliateTierChanged": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateTierChanged"
          },
          "stripeIntegrationCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.StripeIntegrationCreated"
          },
          "stripeIntegrationDeleted": {
            "$ref": "#/components/schemas/webhooks.v1.Event.StripeIntegrationDeleted"
          },
          "conversionStatusChanged": {
            "$ref": "#/components/schemas/webhooks.v1.Event.ConversionStatusChanged"
          },
          "settlementCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.SettlementCreated"
          },
          "couponCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.CouponCreated"
          },
          "freeTrialStarted": {
            "$ref": "#/components/schemas/webhooks.v1.Event.FreeTrialStarted"
          },
          "revenueWarningTriggered": {
            "$ref": "#/components/schemas/webhooks.v1.Event.RevenueWarningTriggered"
          },
          "mailMarketingEventTriggered": {
            "$ref": "#/components/schemas/webhooks.v1.Event.MailMarketingEventTriggered"
          },
          "affiliateTicketCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateTicketCreated"
          },
          "affiliateTicketUpdated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateTicketUpdated"
          },
          "marketplaceAccessStatusChanged": {
            "$ref": "#/components/schemas/webhooks.v1.Event.MarketplaceAccessStatusChanged"
          },
          "tenantTouchpointCompleted": {
            "$ref": "#/components/schemas/webhooks.v1.Event.TenantTouchpointCompleted"
          },
          "claimCreated": {
            "$ref": "#/components/schemas/webhooks.v1.Event.ClaimCreated"
          }
        }
      },
      "webhooks.v1.Event.AffiliateRegistrationDataCreated": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "Email of the affiliate"
          },
          "publicId": {
            "type": "string",
            "title": "Public identifier (Referral ID) of the affiliate"
          },
          "data": {
            "$ref": "#/components/schemas/affiliates.v1.AffiliateRegistrationData"
          }
        },
        "required": [
          "email",
          "publicId",
          "data"
        ]
      },
      "webhooks.v1.Event.AffiliateStatusChanged": {
        "description": "Notifies about the change of affiliate's status in the system.",
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "Email of the affiliate"
          },
          "publicIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "title": "Public identifiers (Referral IDs) of the affiliate"
          },
          "originalStatus": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          },
          "newStatus": {
            "$ref": "#/components/schemas/enums.v1.AccountStatus"
          }
        }
      },
      "webhooks.v1.Event.AffiliateTicketCreated": {
        "type": "object",
        "properties": {
          "accountEmail": {
            "type": "string",
            "title": "Account e-mail of the affiliate"
          },
          "sourcePublicId": {
            "type": "string",
            "title": "Source public ID of the affiliate"
          },
          "ticket": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateTicketData"
          }
        },
        "required": [
          "accountEmail",
          "sourcePublicId",
          "ticket"
        ]
      },
      "webhooks.v1.Event.AffiliateTicketData": {
        "description": "Common ticket data for ticket webhooks.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/enums.v1.AffiliateTicketStatus"
          },
          "fieldAnswers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.CustomQuestionAnswer"
            }
          },
          "note": {
            "type": "string"
          },
          "noteVisibleToAffiliates": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "status",
          "fieldAnswers",
          "noteVisibleToAffiliates",
          "createdAt",
          "modifiedAt"
        ]
      },
      "webhooks.v1.Event.AffiliateTicketUpdated": {
        "type": "object",
        "properties": {
          "accountEmail": {
            "type": "string",
            "title": "Account e-mail of the affiliate"
          },
          "sourcePublicId": {
            "type": "string",
            "title": "Source public ID of the affiliate"
          },
          "ticket": {
            "$ref": "#/components/schemas/webhooks.v1.Event.AffiliateTicketData"
          }
        },
        "required": [
          "accountEmail",
          "sourcePublicId",
          "ticket"
        ]
      },
      "webhooks.v1.Event.AffiliateTierChanged": {
        "description": "Notifies about the change of affiliate's tier in the system.",
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "title": "E-mail of the affiliate"
          },
          "publicId": {
            "type": "string",
            "title": "Public identifier (Referral ID) of the affiliate"
          },
          "originalTierName": {
            "type": "string",
            "title": "Original tier name of the affiliate's account"
          },
          "newTierName": {
            "type": "string",
            "title": "New tier name of the affiliate's account"
          }
        }
      },
      "webhooks.v1.Event.ClaimCreated": {
        "description": "Notifies about a creation of a new claim (advertiser settlement).",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the claim"
          },
          "revenueOriginId": {
            "type": "string",
            "title": "Revenue origin (advertiser) the claim was issued to"
          },
          "until": {
            "type": "string",
            "format": "date-time",
            "title": "Claimed balances until this time"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currencyCode": {
            "type": "string",
            "title": "Currency of the claimed amount"
          },
          "note": {
            "type": "string",
            "title": "Claim note"
          }
        }
      },
      "webhooks.v1.Event.ConversionCreated": {
        "description": "Notifies about a new conversion registered by the system.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the conversion"
          },
          "cid": {
            "type": "string",
            "title": "ID of the click associated with the conversion"
          },
          "revenueOriginId": {
            "type": "string",
            "title": "Conversions' revenue origin, obtainable from trackdesk identifiers in app"
          },
          "conversionTypeId": {
            "type": "string",
            "title": "Type of the conversion"
          },
          "status": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "cost": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenue": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currencyCode": {
            "type": "string",
            "title": "Currency code, uses ISO 4217 format"
          },
          "externalId": {
            "type": "string",
            "title": "External ID, see [Conversion source service](#post-/tracking/tracking/external-cid/v1) for more details"
          },
          "customerId": {
            "type": "string",
            "title": "Customer ID, your specific custom identifier"
          },
          "customParams": {
            "$ref": "#/components/schemas/webhooks.v1.Event.ConversionCreated.CustomParams"
          },
          "offer": {
            "$ref": "#/components/schemas/offers.v1.OfferData"
          },
          "affiliate": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate"
          },
          "conversionType": {
            "$ref": "#/components/schemas/conversion_types.v1.ConversionType"
          }
        }
      },
      "webhooks.v1.Event.ConversionCreated.CustomParams": {
        "type": "object",
        "properties": {
          "advS1": {
            "type": "string",
            "title": "Custom adv S1 parameter"
          },
          "advS2": {
            "type": "string",
            "title": "Custom adv S2 parameter"
          },
          "advS3": {
            "type": "string",
            "title": "Custom adv S3 parameter"
          },
          "advS4": {
            "type": "string",
            "title": "Custom adv S4 parameter"
          },
          "advS5": {
            "type": "string",
            "title": "Custom adv S5 parameter"
          }
        }
      },
      "webhooks.v1.Event.ConversionStatusChanged": {
        "description": "Notifies about the change of conversion's status in the system.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the conversion"
          },
          "originalStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "newStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          }
        }
      },
      "webhooks.v1.Event.CouponCreated": {
        "description": "Notifies about a creation of a new coupon.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the coupon"
          },
          "code": {
            "type": "string",
            "title": "Coupon code"
          },
          "revenueOriginId": {
            "type": "string",
            "title": "Coupon's revenue origin, obtainable from Trackdesk identifiers in app"
          },
          "affiliate": {
            "$ref": "#/components/schemas/affiliates.v1.Affiliate"
          },
          "offer": {
            "$ref": "#/components/schemas/offers.v1.OfferData"
          }
        }
      },
      "webhooks.v1.Event.FreeTrialStarted": {
        "description": "Notifies when a free trial is started.",
        "type": "object",
        "properties": {
          "planId": {
            "$ref": "#/components/schemas/memberships.v1.PlanId"
          },
          "endAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "webhooks.v1.Event.MailMarketingEventTriggered": {
        "description": "Notifies when a mail marketing event is triggered.",
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/enums.v1.MailMarketingEvent"
          }
        },
        "required": [
          "event"
        ]
      },
      "webhooks.v1.Event.MarketplaceAccessStatusChanged": {
        "description": "Notifies when the tenant's marketplace access status changes.",
        "type": "object",
        "properties": {
          "previousStatus": {
            "$ref": "#/components/schemas/enums.v1.MarketplaceAccessStatus"
          },
          "newStatus": {
            "$ref": "#/components/schemas/enums.v1.MarketplaceAccessStatus"
          },
          "tenantSettings": {
            "$ref": "#/components/schemas/settings.v1.GetTenantSettingsResponse"
          }
        },
        "required": [
          "previousStatus",
          "newStatus",
          "tenantSettings"
        ]
      },
      "webhooks.v1.Event.RevenueWarningTriggered": {
        "description": "Notifies when the revenue warning is triggered.",
        "type": "object",
        "properties": {
          "primaryCurrencyCode": {
            "type": "string"
          },
          "revenuePrimaryCurrency": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "revenuesByConversionStatus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/webhooks.v1.Event.RevenueWarningTriggered.RevenueByConversionStatus"
            }
          },
          "revenueUsd": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "limitUsd": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "triggeredThresholds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/types.v1.Decimal"
            }
          },
          "tenantSettings": {
            "$ref": "#/components/schemas/settings.v1.GetTenantSettingsResponse"
          }
        },
        "required": [
          "primaryCurrencyCode",
          "revenuePrimaryCurrency",
          "revenuesByConversionStatus",
          "revenueUsd",
          "limitUsd",
          "triggeredThresholds",
          "tenantSettings"
        ]
      },
      "webhooks.v1.Event.RevenueWarningTriggered.RevenueByConversionStatus": {
        "type": "object",
        "properties": {
          "conversionStatus": {
            "$ref": "#/components/schemas/conversions.v1.ConversionStatus"
          },
          "revenuePrimaryCurrency": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "share": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          }
        },
        "required": [
          "conversionStatus",
          "revenuePrimaryCurrency",
          "share"
        ]
      },
      "webhooks.v1.Event.SettlementCreated": {
        "description": "Notifies about a creation of a new settlement.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the settlement"
          },
          "until": {
            "type": "string",
            "format": "date-time",
            "title": "Settled balances until this time"
          },
          "amount": {
            "$ref": "#/components/schemas/types.v1.Decimal"
          },
          "currencyCode": {
            "type": "string",
            "title": "Currency of the settled amount"
          },
          "note": {
            "type": "string",
            "title": "Settlement note"
          }
        }
      },
      "webhooks.v1.Event.StripeIntegrationCreated": {
        "description": "Notifies about a creation of new Stripe integration.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the integration"
          },
          "stripeAccountId": {
            "type": "string",
            "title": "Stripe account associated with the integration"
          }
        }
      },
      "webhooks.v1.Event.StripeIntegrationDeleted": {
        "description": "Notifies about the deletion of Stripe integration.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "title": "Unique identifier of the integration"
          },
          "stripeAccountId": {
            "type": "string",
            "title": "Stripe account associated with the integration"
          }
        }
      },
      "webhooks.v1.Event.TenantTouchpointCompleted": {
        "description": "Notifies when a tenant onboarding touchpoint is completed for the first time.",
        "type": "object",
        "properties": {
          "touchpointType": {
            "$ref": "#/components/schemas/enums.v1.TenantTouchpointType"
          },
          "category": {
            "$ref": "#/components/schemas/enums.v1.TenantTouchpointCategory"
          },
          "isOptional": {
            "type": "boolean"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "touchpointType",
          "category",
          "isOptional",
          "completedAt"
        ]
      },
      "webhooks.v1.EventType": {
        "type": "string",
        "default": "EVENT_TYPE_UNSPECIFIED",
        "enum": [
          "EVENT_TYPE_UNSPECIFIED",
          "EVENT_TYPE_AFFILIATE_CREATED",
          "EVENT_TYPE_AFFILIATE_REGISTRATION_DATA_CREATED",
          "EVENT_TYPE_AFFILIATE_STATUS_CHANGED",
          "EVENT_TYPE_AFFILIATE_TIER_CHANGED",
          "EVENT_TYPE_CLICK_CREATED",
          "EVENT_TYPE_CONVERSION_CREATED",
          "EVENT_TYPE_COUPON_CREATED",
          "EVENT_TYPE_CONVERSION_STATUS_CHANGED",
          "EVENT_TYPE_SETTLEMENT_CREATED",
          "EVENT_TYPE_AFFILIATE_TICKET_CREATED",
          "EVENT_TYPE_AFFILIATE_TICKET_UPDATED",
          "EVENT_TYPE_CLAIM_CREATED"
        ]
      },
      "webhooks.v1.ListWebhooksResponse": {
        "description": "Existing webhooks.",
        "type": "object",
        "properties": {
          "webhooks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/webhooks.v1.Webhook"
            }
          }
        }
      },
      "webhooks.v1.SendWebhookRequest": {
        "description": "Request a test ping for existing webhook.",
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "title": "URL to which the webhook should send a request"
          },
          "eventType": {
            "$ref": "#/components/schemas/webhooks.v1.EventType"
          }
        },
        "required": [
          "url",
          "eventType"
        ]
      },
      "webhooks.v1.SendWebhookResponse": {
        "description": "Ping of existing webhook.",
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/webhooks.v1.Event"
          }
        }
      },
      "webhooks.v1.Webhook": {
        "description": "Webhook.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true,
            "title": "Unique identifier of the webhook"
          },
          "url": {
            "type": "string",
            "title": "URL to which the webhook should send a request"
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/webhooks.v1.EventType"
            },
            "title": "Type of event for which the webhook should be executed"
          }
        },
        "required": [
          "url",
          "eventTypes"
        ]
      }
    },
    "securitySchemes": {
      "X-Api-Key": {
        "type": "apiKey",
        "name": "X-Api-Key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "X-Api-Key": []
    }
  ]
}
