{
  "discoveryVersion": "v1",
  "documentationLink": "https://developers.google.com/bid-manager/",
  "baseUrl": "https://doubleclickbidmanager.googleapis.com/v2/",
  "rootUrl": "https://doubleclickbidmanager.googleapis.com/",
  "description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.",
  "protocol": "rest",
  "resources": {
    "queries": {
      "methods": {
        "create": {
          "path": "queries",
          "flatPath": "queries",
          "id": "doubleclickbidmanager.queries.create",
          "parameterOrder": [],
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "httpMethod": "POST",
          "description": "Creates a new query.",
          "parameters": {},
          "response": {
            "$ref": "Query"
          },
          "request": {
            "$ref": "Query"
          }
        },
        "delete": {
          "parameterOrder": [
            "queryId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "id": "doubleclickbidmanager.queries.delete",
          "parameters": {
            "queryId": {
              "location": "path",
              "type": "string",
              "format": "int64",
              "description": "Required. The ID of the query to delete.",
              "required": true
            }
          },
          "description": "Deletes an existing query as well as its generated reports.",
          "path": "queries/{queryId}",
          "flatPath": "queries/{queryId}",
          "httpMethod": "DELETE"
        },
        "get": {
          "path": "queries/{queryId}",
          "flatPath": "queries/{queryId}",
          "parameterOrder": [
            "queryId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "id": "doubleclickbidmanager.queries.get",
          "description": "Retrieves a query.",
          "httpMethod": "GET",
          "response": {
            "$ref": "Query"
          },
          "parameters": {
            "queryId": {
              "location": "path",
              "type": "string",
              "format": "int64",
              "description": "Required. The ID of the query to retrieve.",
              "required": true
            }
          }
        },
        "run": {
          "description": "Runs an existing query to generate a report.",
          "httpMethod": "POST",
          "request": {
            "$ref": "RunQueryRequest"
          },
          "parameters": {
            "queryId": {
              "description": "Required. The ID of the query to run.",
              "required": true,
              "location": "path",
              "type": "string",
              "format": "int64"
            },
            "synchronous": {
              "location": "query",
              "type": "boolean",
              "description": "Whether the query should be run synchronously. When `true`, the request won't return until the resulting report has finished running. This parameter is `false` by default. Setting this parameter to `true` is **not recommended**."
            }
          },
          "response": {
            "$ref": "Report"
          },
          "path": "queries/{queryId}:run",
          "flatPath": "queries/{queryId}:run",
          "parameterOrder": [
            "queryId"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ],
          "id": "doubleclickbidmanager.queries.run"
        },
        "list": {
          "httpMethod": "GET",
          "description": "Lists queries created by the current user.",
          "response": {
            "$ref": "ListQueriesResponse"
          },
          "parameters": {
            "pageSize": {
              "description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.",
              "location": "query",
              "type": "integer",
              "format": "int32"
            },
            "pageToken": {
              "location": "query",
              "type": "string",
              "description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken, returned from the previous call to the `queries.list` method. If unspecified, the first page of results is returned."
            },
            "orderBy": {
              "location": "query",
              "type": "string",
              "description": "Field to sort the list by. Accepts the following values: * `queryId` (default) * `metadata.title` The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `queryId desc`."
            }
          },
          "path": "queries",
          "flatPath": "queries",
          "id": "doubleclickbidmanager.queries.list",
          "parameterOrder": [],
          "scopes": [
            "https://www.googleapis.com/auth/doubleclickbidmanager"
          ]
        }
      },
      "resources": {
        "reports": {
          "methods": {
            "list": {
              "path": "queries/{queryId}/reports",
              "flatPath": "queries/{queryId}/reports",
              "parameterOrder": [
                "queryId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/doubleclickbidmanager"
              ],
              "id": "doubleclickbidmanager.queries.reports.list",
              "description": "Lists reports generated by the provided query.",
              "httpMethod": "GET",
              "response": {
                "$ref": "ListReportsResponse"
              },
              "parameters": {
                "pageSize": {
                  "description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken returned from the previous call to the `queries.reports.list` method. If unspecified, the first page of results is returned.",
                  "location": "query",
                  "type": "string"
                },
                "orderBy": {
                  "location": "query",
                  "type": "string",
                  "description": "Field to sort the list by. Accepts the following values: * `key.reportId` (default) The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `key.reportId desc`."
                },
                "queryId": {
                  "location": "path",
                  "type": "string",
                  "format": "int64",
                  "description": "Required. The ID of the query that generated the reports.",
                  "required": true
                }
              }
            },
            "get": {
              "id": "doubleclickbidmanager.queries.reports.get",
              "parameterOrder": [
                "queryId",
                "reportId"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/doubleclickbidmanager"
              ],
              "path": "queries/{queryId}/reports/{reportId}",
              "flatPath": "queries/{queryId}/reports/{reportId}",
              "response": {
                "$ref": "Report"
              },
              "parameters": {
                "reportId": {
                  "description": "Required. The ID of the query to retrieve.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "format": "int64"
                },
                "queryId": {
                  "description": "Required. The ID of the query that generated the report.",
                  "required": true,
                  "location": "path",
                  "type": "string",
                  "format": "int64"
                }
              },
              "httpMethod": "GET",
              "description": "Retrieves a report."
            }
          }
        }
      }
    }
  },
  "revision": "20260610",
  "kind": "discovery#restDescription",
  "ownerName": "Google",
  "basePath": "/v2/",
  "canonicalName": "DoubleClick Bid Manager",
  "parameters": {
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "type": "string",
      "location": "query"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "type": "string",
      "location": "query"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "location": "query",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ]
    },
    "quotaUser": {
      "type": "string",
      "location": "query",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "location": "query",
      "description": "JSONP"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "type": "boolean",
      "default": "true",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "location": "query",
      "description": "OAuth 2.0 token for the current user."
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "location": "query",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json",
      "description": "Data format for response."
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "type": "string",
      "location": "query"
    }
  },
  "ownerDomain": "google.com",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/doubleclickbidmanager": {
          "description": "View and manage your reports in DoubleClick Bid Manager"
        }
      }
    }
  },
  "mtlsRootUrl": "https://doubleclickbidmanager.mtls.googleapis.com/",
  "version": "v2",
  "batchPath": "batch",
  "title": "DoubleClick Bid Manager API",
  "id": "doubleclickbidmanager:v2",
  "servicePath": "v2/",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "name": "doubleclickbidmanager",
  "schemas": {
    "DataRange": {
      "description": "The date range to be reported on.",
      "properties": {
        "range": {
          "description": "The preset date range to be reported on. If `CUSTOM_DATES` is assigned to this field, fields custom_start_date and custom_end_date must be set to specify the custom date range.",
          "enumDescriptions": [
            "Default value when range is not specified or is unknown in this version.",
            "Custom date range.",
            "Current day.",
            "Previous day.",
            "All days, including the current day, since the most recent Sunday.",
            "All days, including the current day, since the start of the current month.",
            "All days, including the current day, since the start of the current quarter.",
            "All days, including the current day, since the start of the current calendar year.",
            "The previous completed week, beginning from Sunday.",
            "The previous completed calendar month.",
            "The previous completed quarter.",
            "The previous completed calendar year.",
            "The previous 7 days, excluding the current day.",
            "The previous 30 days, excluding the current day.",
            "The previous 90 days, excluding the current day.",
            "The previous 365 days, excluding the current day.",
            "All time for which data is available, excluding the current day.",
            "The previous 14 days, excluding the current day.",
            "The previous 60 days, excluding the current day."
          ],
          "enum": [
            "RANGE_UNSPECIFIED",
            "CUSTOM_DATES",
            "CURRENT_DAY",
            "PREVIOUS_DAY",
            "WEEK_TO_DATE",
            "MONTH_TO_DATE",
            "QUARTER_TO_DATE",
            "YEAR_TO_DATE",
            "PREVIOUS_WEEK",
            "PREVIOUS_MONTH",
            "PREVIOUS_QUARTER",
            "PREVIOUS_YEAR",
            "LAST_7_DAYS",
            "LAST_30_DAYS",
            "LAST_90_DAYS",
            "LAST_365_DAYS",
            "ALL_TIME",
            "LAST_14_DAYS",
            "LAST_60_DAYS"
          ],
          "type": "string"
        },
        "customEndDate": {
          "description": "If `CUSTOM_DATES` is assigned to range, this field specifies the end date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise.",
          "$ref": "Date"
        },
        "customStartDate": {
          "$ref": "Date",
          "description": "If `CUSTOM_DATES` is assigned to range, this field specifies the starting date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise."
        }
      },
      "id": "DataRange",
      "type": "object"
    },
    "Parameters": {
      "id": "Parameters",
      "type": "object",
      "description": "Parameters of a generated report.",
      "properties": {
        "groupBys": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Dimensions by which to segment and group the data. Defined by [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) values."
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "FilterPair"
          },
          "description": "Filters to limit the scope of reported data."
        },
        "metrics": {
          "description": "Metrics to define the data populating the report. Defined by [Metric](/bid-manager/reference/rest/v2/filters-metrics#metrics) values.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "options": {
          "description": "Additional report parameter options.",
          "$ref": "Options"
        },
        "type": {
          "description": "The type of the report. The type of the report determines the dimesions, filters, and metrics that can be used.",
          "enumDescriptions": [
            "Default value when report type is not specified or is unknown in this version.",
            "Standard report.",
            "Inventory Availability report.",
            "Audience Composition report.",
            "Floodlight report.",
            "YouTube report.",
            "GRP report.",
            "YouTube Programmatic Guaranteed report.",
            "Reach report.",
            "Unique Reach Audience report.",
            "Full Path report.",
            "Path Attribution report."
          ],
          "enum": [
            "REPORT_TYPE_UNSPECIFIED",
            "STANDARD",
            "INVENTORY_AVAILABILITY",
            "AUDIENCE_COMPOSITION",
            "FLOODLIGHT",
            "YOUTUBE",
            "GRP",
            "YOUTUBE_PROGRAMMATIC_GUARANTEED",
            "REACH",
            "UNIQUE_REACH_AUDIENCE",
            "FULL_PATH",
            "PATH_ATTRIBUTION"
          ],
          "type": "string",
          "enumDeprecated": [
            false,
            false,
            false,
            true,
            false,
            false,
            false,
            false,
            false,
            false,
            true,
            true
          ]
        }
      }
    },
    "ReportMetadata": {
      "description": "The metadata of a report.",
      "properties": {
        "reportDataStartDate": {
          "description": "The start date of the report data date range.",
          "$ref": "Date"
        },
        "googleCloudStoragePath": {
          "description": "Output only. The location of the generated report file in Google Cloud Storage. This field will be absent if status.state is not `DONE`.",
          "readOnly": true,
          "type": "string"
        },
        "status": {
          "description": "The status of the report.",
          "$ref": "ReportStatus"
        },
        "reportDataEndDate": {
          "description": "The end date of the report data date range.",
          "$ref": "Date"
        }
      },
      "id": "ReportMetadata",
      "type": "object"
    },
    "ListQueriesResponse": {
      "id": "ListQueriesResponse",
      "type": "object",
      "properties": {
        "queries": {
          "description": "The list of queries. This field will be absent if empty.",
          "items": {
            "$ref": "Query"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `queries.list` method to retrieve the next page of results.",
          "type": "string"
        }
      }
    },
    "ReportStatus": {
      "id": "ReportStatus",
      "type": "object",
      "description": "The status of a report.",
      "properties": {
        "format": {
          "description": "The format of the generated report file.",
          "enumDescriptions": [
            "Default value when format is not specified or is unknown in this version.",
            "CSV.",
            "Excel."
          ],
          "enum": [
            "FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ],
          "type": "string"
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "enumDescriptions": [
            "Default value when state is not specified or is unknown in this version.",
            "The report is queued to run.",
            "The report is currently running.",
            "The report has finished running successfully.",
            "The report has finished running in failure."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "QUEUED",
            "RUNNING",
            "DONE",
            "FAILED"
          ],
          "description": "Output only. The state of the report generation."
        },
        "finishTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The timestamp of when report generation finished successfully or in failure. This field will not be set unless state is `DONE` or `FAILED`.",
          "readOnly": true
        }
      }
    },
    "RunQueryRequest": {
      "id": "RunQueryRequest",
      "type": "object",
      "description": "Details specifying how to run a query.",
      "properties": {
        "dataRange": {
          "$ref": "DataRange",
          "description": "The date range used by the query to generate the report. If unspecified, the query's original data_range is used."
        }
      }
    },
    "Options": {
      "id": "Options",
      "type": "object",
      "description": "Report parameter options.",
      "properties": {
        "includeOnlyTargetedUserLists": {
          "description": "Whether to include data for audience lists specifically targeted by filtered line items or insertion orders. Requires the use of `FILTER_INSERTION_ORDER` or `FILTER_LINE_ITEM` filters.",
          "type": "boolean"
        }
      }
    },
    "Query": {
      "id": "Query",
      "type": "object",
      "description": "A single query used to generate a report.",
      "properties": {
        "queryId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The unique ID of the query.",
          "readOnly": true
        },
        "metadata": {
          "description": "The metadata of the query.",
          "$ref": "QueryMetadata"
        },
        "params": {
          "$ref": "Parameters",
          "description": "The parameters of the report generated by the query."
        },
        "schedule": {
          "description": "When and how often the query is scheduled to run. If the frequency field is set to `ONE_TIME`, the query will only run when queries.run is called.",
          "$ref": "QuerySchedule"
        }
      }
    },
    "ReportKey": {
      "description": "Identifying information of a report.",
      "properties": {
        "queryId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The unique ID of the query that generated the report.",
          "readOnly": true
        },
        "reportId": {
          "type": "string",
          "format": "int64",
          "description": "Output only. The unique ID of the report.",
          "readOnly": true
        }
      },
      "id": "ReportKey",
      "type": "object"
    },
    "Report": {
      "description": "A single report generated by its parent report.",
      "properties": {
        "key": {
          "description": "The key information identifying the report.",
          "$ref": "ReportKey"
        },
        "metadata": {
          "description": "The metadata of the report.",
          "$ref": "ReportMetadata"
        },
        "params": {
          "$ref": "Parameters",
          "description": "The parameters of the report."
        }
      },
      "id": "Report",
      "type": "object"
    },
    "QuerySchedule": {
      "description": "Settings on when and how frequently to run a query.",
      "properties": {
        "startDate": {
          "description": "The date on which to begin the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored.",
          "$ref": "Date"
        },
        "nextRunTimezoneCode": {
          "description": "The canonical code for the timezone the query schedule is based on. Scheduled runs are usually conducted in the morning of a given day. Defaults to `America/New_York`.",
          "type": "string"
        },
        "endDate": {
          "description": "The date on which to end the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored.",
          "$ref": "Date"
        },
        "frequency": {
          "type": "string",
          "description": "How frequently to run the query. If set to `ONE_TIME`, the query will only be run when queries.run is called.",
          "enumDescriptions": [
            "Default value when frequency is not specified or is unknown in this version.",
            "Only when the query is run manually.",
            "Once a day.",
            "Once a week.",
            "Twice a month.",
            "Once a month.",
            "Once a quarter.",
            "Once a year."
          ],
          "enum": [
            "FREQUENCY_UNSPECIFIED",
            "ONE_TIME",
            "DAILY",
            "WEEKLY",
            "SEMI_MONTHLY",
            "MONTHLY",
            "QUARTERLY",
            "YEARLY"
          ]
        }
      },
      "id": "QuerySchedule",
      "type": "object"
    },
    "FilterPair": {
      "description": "Represents a single filter rule.",
      "properties": {
        "type": {
          "description": "The type of value to filter by. Defined by a [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) value.",
          "type": "string"
        },
        "value": {
          "description": "The identifying value to filter by, such as a relevant resource ID.",
          "type": "string"
        }
      },
      "id": "FilterPair",
      "type": "object"
    },
    "ListReportsResponse": {
      "properties": {
        "nextPageToken": {
          "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `queries.reports.list` method to retrieve the next page of results.",
          "type": "string"
        },
        "reports": {
          "items": {
            "$ref": "Report"
          },
          "type": "array",
          "description": "The list of reports. This field will be absent if empty."
        }
      },
      "id": "ListReportsResponse",
      "type": "object"
    },
    "QueryMetadata": {
      "description": "The metadata of the query.",
      "properties": {
        "dataRange": {
          "description": "The date range the report generated by the query will report on. This date range will be defined by the time zone as used by the advertiser.",
          "$ref": "DataRange"
        },
        "title": {
          "description": "The display name of the query. This value will be used in the file name of reports generated by the query.",
          "type": "string"
        },
        "format": {
          "type": "string",
          "description": "The format of the report generated by the query.",
          "enumDescriptions": [
            "Default value when format is not specified or is unknown in this version.",
            "CSV.",
            "Excel."
          ],
          "enum": [
            "FORMAT_UNSPECIFIED",
            "CSV",
            "XLSX"
          ]
        },
        "sendNotification": {
          "description": "Whether an email notification is sent to the query creator when a report generated by the query is ready. This value is `false` by default.",
          "type": "boolean"
        },
        "shareEmailAddress": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "List of additional email addresses with which to share the query. If send_notification is `true`, these email addresses will receive a notification when a report generated by the query is ready. If these email addresses are connected to Display & Video 360 users, the query will be available to them in the Display & Video 360 interface."
        }
      },
      "id": "QueryMetadata",
      "type": "object"
    },
    "Date": {
      "id": "Date",
      "type": "object",
      "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "properties": {
        "month": {
          "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "type": "integer",
          "format": "int32"
        },
        "year": {
          "type": "integer",
          "format": "int32",
          "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year."
        },
        "day": {
          "type": "integer",
          "format": "int32",
          "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
        }
      }
    }
  }
}
