-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google DoubleClick Search SDK.
--   
--   Reports and modifies your advertising data in DoubleClick Search (for
--   example, campaigns, ad groups, keywords, and conversions).
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v2</tt> of the API.
@package gogol-doubleclick-search
@version 0.3.0


module Network.Google.DoubleClickSearch.Types

-- | Default request referring to version <tt>v2</tt> of the DoubleClick
--   Search API. This contains the host and root path used as a starting
--   point for constructing service requests.
doubleClickSearchService :: ServiceConfig

-- | View and manage your advertising data in DoubleClick Search
doubleClickSearchScope :: Proxy '["https://www.googleapis.com/auth/doubleclicksearch"]

-- | A row in a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportRow</a> smart constructor.
data ReportRow

-- | Creates a value of <a>ReportRow</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrAddtional</a></li>
--   </ul>
reportRow :: HashMap Text JSONValue -> ReportRow

-- | Indicates the columns that are represented in this row. That is, each
--   key corresponds to a column with a non-empty cell in this row.
rrAddtional :: Lens' ReportRow (HashMap Text JSONValue)

-- | A request object used to create a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportRequest</a> smart constructor.
data ReportRequest

-- | Creates a value of <a>ReportRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrMaxRowsPerFile</a></li>
--   <li><a>rrReportScope</a></li>
--   <li><a>rrStatisticsCurrency</a></li>
--   <li><a>rrTimeRange</a></li>
--   <li><a>rrOrderBy</a></li>
--   <li><a>rrFilters</a></li>
--   <li><a>rrIncludeRemovedEntities</a></li>
--   <li><a>rrIncludeDeletedEntities</a></li>
--   <li><a>rrDownloadFormat</a></li>
--   <li><a>rrStartRow</a></li>
--   <li><a>rrColumns</a></li>
--   <li><a>rrReportType</a></li>
--   <li><a>rrVerifySingleTimeZone</a></li>
--   <li><a>rrRowCount</a></li>
--   </ul>
reportRequest :: ReportRequest

-- | Asynchronous report only. The maximum number of rows per report file.
--   A large report is split into many files based on this field.
--   Acceptable values are 1000000 to 100000000, inclusive.
rrMaxRowsPerFile :: Lens' ReportRequest (Maybe Int32)

-- | The reportScope is a set of IDs that are used to determine which
--   subset of entities will be returned in the report. The full lineage of
--   IDs from the lowest scoped level desired up through agency is
--   required.
rrReportScope :: Lens' ReportRequest (Maybe ReportRequestReportScope)

-- | Specifies the currency in which monetary will be returned. Possible
--   values are: usd, agency (valid if the report is scoped to agency or
--   lower), advertiser (valid if the report is scoped to * advertiser or
--   lower), or account (valid if the report is scoped to engine account or
--   lower).
rrStatisticsCurrency :: Lens' ReportRequest (Maybe Text)

-- | If metrics are requested in a report, this argument will be used to
--   restrict the metrics to a specific time range.
rrTimeRange :: Lens' ReportRequest (Maybe ReportRequestTimeRange)

-- | Synchronous report only. A list of columns and directions defining
--   sorting to be performed on the report rows.
rrOrderBy :: Lens' ReportRequest [ReportRequestOrderByItem]

-- | A list of filters to be applied to the report.
rrFilters :: Lens' ReportRequest [ReportRequestFiltersItem]

-- | Determines if removed entities should be included in the report.
--   Defaults to false.
rrIncludeRemovedEntities :: Lens' ReportRequest Bool

-- | Determines if removed entities should be included in the report.
--   Defaults to false. Deprecated, please use includeRemovedEntities
--   instead.
rrIncludeDeletedEntities :: Lens' ReportRequest Bool

-- | Format that the report should be returned in. Currently csv or tsv is
--   supported.
rrDownloadFormat :: Lens' ReportRequest (Maybe Text)

-- | Synchronous report only. Zero-based index of the first row to return.
--   Acceptable values are 0 to 50000, inclusive. Defaults to 0.
rrStartRow :: Lens' ReportRequest Int32

-- | The columns to include in the report. This includes both DoubleClick
--   Search columns and saved columns. For DoubleClick Search columns, only
--   the columnName parameter is required. For saved columns only the
--   savedColumnName parameter is required. Both columnName and
--   savedColumnName cannot be set in the same stanza.
rrColumns :: Lens' ReportRequest [ReportAPIColumnSpec]

-- | Determines the type of rows that are returned in the report. For
--   example, if you specify reportType: keyword, each row in the report
--   will contain data about a keyword. See the Types of Reports reference
--   for the columns that are available for each type.
rrReportType :: Lens' ReportRequest (Maybe Text)

-- | If true, the report would only be created if all the requested stat
--   data are sourced from a single timezone. Defaults to false.
rrVerifySingleTimeZone :: Lens' ReportRequest Bool

-- | Synchronous report only. The maxinum number of rows to return;
--   additional rows are dropped. Acceptable values are 0 to 10000,
--   inclusive. Defaults to 10000.
rrRowCount :: Lens' ReportRequest Int32
data ReportRequestOrderByItem

-- | Creates a value of <a>ReportRequestOrderByItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrobiSortOrder</a></li>
--   <li><a>rrobiColumn</a></li>
--   </ul>
reportRequestOrderByItem :: ReportRequestOrderByItem

-- | The sort direction, which is either ascending or descending.
rrobiSortOrder :: Lens' ReportRequestOrderByItem (Maybe Text)

-- | Column to perform the sort on. This can be a DoubleClick
--   Search-defined column or a saved column.
rrobiColumn :: Lens' ReportRequestOrderByItem (Maybe ReportAPIColumnSpec)

-- | A DoubleClick Search report. This object contains the report request,
--   some report metadata such as currency code, and the generated report
--   rows or report files.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rKind</a></li>
--   <li><a>rRows</a></li>
--   <li><a>rStatisticsCurrencyCode</a></li>
--   <li><a>rIsReportReady</a></li>
--   <li><a>rFiles</a></li>
--   <li><a>rId</a></li>
--   <li><a>rStatisticsTimeZone</a></li>
--   <li><a>rRowCount</a></li>
--   <li><a>rRequest</a></li>
--   </ul>
report :: Report

-- | Identifies this as a Report resource. Value: the fixed string
--   doubleclicksearch#report.
rKind :: Lens' Report Text

-- | Synchronous report only. Generated report rows.
rRows :: Lens' Report [ReportRow]

-- | The currency code of all monetary values produced in the report,
--   including values that are set by users (e.g., keyword bid settings)
--   and metrics (e.g., cost and revenue). The currency code of a report is
--   determined by the statisticsCurrency field of the report request.
rStatisticsCurrencyCode :: Lens' Report (Maybe Text)

-- | Asynchronous report only. True if and only if the report has completed
--   successfully and the report files are ready to be downloaded.
rIsReportReady :: Lens' Report (Maybe Bool)

-- | Asynchronous report only. Contains a list of generated report files
--   once the report has succesfully completed.
rFiles :: Lens' Report [ReportFilesItem]

-- | Asynchronous report only. Id of the report.
rId :: Lens' Report (Maybe Text)

-- | If all statistics of the report are sourced from the same time zone,
--   this would be it. Otherwise the field is unset.
rStatisticsTimeZone :: Lens' Report (Maybe Text)

-- | The number of report rows generated by the report, not including
--   headers.
rRowCount :: Lens' Report (Maybe Int32)

-- | The request that created the report. Optional fields not specified in
--   the original request are filled with default values.
rRequest :: Lens' Report (Maybe ReportRequest)
data ReportFilesItem

-- | Creates a value of <a>ReportFilesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfiURL</a></li>
--   <li><a>rfiByteCount</a></li>
--   </ul>
reportFilesItem :: ReportFilesItem

-- | Use this url to download the report file.
rfiURL :: Lens' ReportFilesItem (Maybe Text)

-- | The size of this report file in bytes.
rfiByteCount :: Lens' ReportFilesItem (Maybe Int64)
data ReportRequestFiltersItem

-- | Creates a value of <a>ReportRequestFiltersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrfiOperator</a></li>
--   <li><a>rrfiValues</a></li>
--   <li><a>rrfiColumn</a></li>
--   </ul>
reportRequestFiltersItem :: ReportRequestFiltersItem

-- | Operator to use in the filter. See the filter reference for a list of
--   available operators.
rrfiOperator :: Lens' ReportRequestFiltersItem (Maybe Text)

-- | A list of values to filter the column value against.
rrfiValues :: Lens' ReportRequestFiltersItem [JSONValue]

-- | Column to perform the filter on. This can be a DoubleClick Search
--   column or a saved column.
rrfiColumn :: Lens' ReportRequestFiltersItem (Maybe ReportAPIColumnSpec)

-- | A message containing availability data relevant to DoubleClick Search.
--   
--   <i>See:</i> <a>availability</a> smart constructor.
data Availability

-- | Creates a value of <a>Availability</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAgencyId</a></li>
--   <li><a>aAdvertiserId</a></li>
--   <li><a>aSegmentationId</a></li>
--   <li><a>aSegmentationName</a></li>
--   <li><a>aAvailabilityTimestamp</a></li>
--   <li><a>aSegmentationType</a></li>
--   </ul>
availability :: Availability

-- | DS agency ID.
aAgencyId :: Lens' Availability (Maybe Int64)

-- | DS advertiser ID.
aAdvertiserId :: Lens' Availability (Maybe Int64)

-- | The numeric segmentation identifier (for example, DoubleClick Search
--   Floodlight activity ID).
aSegmentationId :: Lens' Availability (Maybe Int64)

-- | The friendly segmentation identifier (for example, DoubleClick Search
--   Floodlight activity name).
aSegmentationName :: Lens' Availability (Maybe Text)

-- | The time by which all conversions have been uploaded, in epoch millis
--   UTC.
aAvailabilityTimestamp :: Lens' Availability (Maybe Word64)

-- | The segmentation type that this availability is for (its default value
--   is FLOODLIGHT).
aSegmentationType :: Lens' Availability (Maybe Text)

-- | The request to update availability.
--   
--   <i>See:</i> <a>updateAvailabilityRequest</a> smart constructor.
data UpdateAvailabilityRequest

-- | Creates a value of <a>UpdateAvailabilityRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uarAvailabilities</a></li>
--   </ul>
updateAvailabilityRequest :: UpdateAvailabilityRequest

-- | The availabilities being requested.
uarAvailabilities :: Lens' UpdateAvailabilityRequest [Availability]

-- | A message containing the custome metric.
--   
--   <i>See:</i> <a>customMetric</a> smart constructor.
data CustomMetric

-- | Creates a value of <a>CustomMetric</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmValue</a></li>
--   <li><a>cmName</a></li>
--   </ul>
customMetric :: CustomMetric

-- | Custom metric numeric value.
cmValue :: Lens' CustomMetric (Maybe Double)

-- | Custom metric name.
cmName :: Lens' CustomMetric (Maybe Text)

-- | A list of conversions.
--   
--   <i>See:</i> <a>conversionList</a> smart constructor.
data ConversionList

-- | Creates a value of <a>ConversionList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clKind</a></li>
--   <li><a>clConversion</a></li>
--   </ul>
conversionList :: ConversionList

-- | Identifies this as a ConversionList resource. Value: the fixed string
--   doubleclicksearch#conversionList.
clKind :: Lens' ConversionList Text

-- | The conversions being requested.
clConversion :: Lens' ConversionList [Conversion]

-- | A request object used to create a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportAPIColumnSpec</a> smart constructor.
data ReportAPIColumnSpec

-- | Creates a value of <a>ReportAPIColumnSpec</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>racsCustomDimensionName</a></li>
--   <li><a>racsSavedColumnName</a></li>
--   <li><a>racsGroupByColumn</a></li>
--   <li><a>racsCustomMetricName</a></li>
--   <li><a>racsEndDate</a></li>
--   <li><a>racsProductReportPerspective</a></li>
--   <li><a>racsStartDate</a></li>
--   <li><a>racsHeaderText</a></li>
--   <li><a>racsPlatformSource</a></li>
--   <li><a>racsColumnName</a></li>
--   </ul>
reportAPIColumnSpec :: ReportAPIColumnSpec

-- | Segments a report by a custom dimension. The report must be scoped to
--   an advertiser or lower, and the custom dimension must already be set
--   up in DoubleClick Search. The custom dimension name, which appears in
--   DoubleClick Search, is case sensitive. If used in a conversion report,
--   returns the value of the specified custom dimension for the given
--   conversion, if set. This column does not segment the conversion
--   report.
racsCustomDimensionName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Name of a saved column to include in the report. The report must be
--   scoped at advertiser or lower, and this saved column must already be
--   created in the DoubleClick Search UI.
racsSavedColumnName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Synchronous report only. Set to true to group by this column. Defaults
--   to false.
racsGroupByColumn :: Lens' ReportAPIColumnSpec Bool

-- | Name of a custom metric to include in the report. The report must be
--   scoped to an advertiser or lower, and the custom metric must already
--   be set up in DoubleClick Search. The custom metric name, which appears
--   in DoubleClick Search, is case sensitive.
racsCustomMetricName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Inclusive day in YYYY-MM-DD format. When provided, this overrides the
--   overall time range of the report for this column only. Must be
--   provided together with startDate.
racsEndDate :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Returns metrics only for a specific type of product activity. Accepted
--   values are: - "sold": returns metrics only for products that were sold
--   - "advertised": returns metrics only for products that were advertised
--   in a Shopping campaign, and that might or might not have been sold
racsProductReportPerspective :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Inclusive date in YYYY-MM-DD format. When provided, this overrides the
--   overall time range of the report for this column only. Must be
--   provided together with endDate.
racsStartDate :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Text used to identify this column in the report output; defaults to
--   columnName or savedColumnName when not specified. This can be used to
--   prevent collisions between DoubleClick Search columns and saved
--   columns with the same name.
racsHeaderText :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | The platform that is used to provide data for the custom dimension.
--   Acceptable values are "floodlight".
racsPlatformSource :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Name of a DoubleClick Search column to include in the report.
racsColumnName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | If metrics are requested in a report, this argument will be used to
--   restrict the metrics to a specific time range.
--   
--   <i>See:</i> <a>reportRequestTimeRange</a> smart constructor.
data ReportRequestTimeRange

-- | Creates a value of <a>ReportRequestTimeRange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrtrEndDate</a></li>
--   <li><a>rrtrChangedAttributesSinceTimestamp</a></li>
--   <li><a>rrtrStartDate</a></li>
--   <li><a>rrtrChangedMetricsSinceTimestamp</a></li>
--   </ul>
reportRequestTimeRange :: ReportRequestTimeRange

-- | Inclusive date in YYYY-MM-DD format.
rrtrEndDate :: Lens' ReportRequestTimeRange (Maybe Text)

-- | Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z.
--   See additional references on how changed attribute reports work.
rrtrChangedAttributesSinceTimestamp :: Lens' ReportRequestTimeRange (Maybe UTCTime)

-- | Inclusive date in YYYY-MM-DD format.
rrtrStartDate :: Lens' ReportRequestTimeRange (Maybe Text)

-- | Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z.
--   See additional references on how changed metrics reports work.
rrtrChangedMetricsSinceTimestamp :: Lens' ReportRequestTimeRange (Maybe UTCTime)

-- | A conversion containing data relevant to DoubleClick Search.
--   
--   <i>See:</i> <a>conversion</a> smart constructor.
data Conversion

-- | Creates a value of <a>Conversion</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cAdGroupId</a></li>
--   <li><a>cConversionModifiedTimestamp</a></li>
--   <li><a>cState</a></li>
--   <li><a>cEngineAccountId</a></li>
--   <li><a>cAgencyId</a></li>
--   <li><a>cCurrencyCode</a></li>
--   <li><a>cStoreId</a></li>
--   <li><a>cDsConversionId</a></li>
--   <li><a>cConversionId</a></li>
--   <li><a>cAdvertiserId</a></li>
--   <li><a>cSegmentationId</a></li>
--   <li><a>cChannel</a></li>
--   <li><a>cProductCountry</a></li>
--   <li><a>cCampaignId</a></li>
--   <li><a>cCriterionId</a></li>
--   <li><a>cConversionTimestamp</a></li>
--   <li><a>cAttributionModel</a></li>
--   <li><a>cSegmentationName</a></li>
--   <li><a>cProductLanguage</a></li>
--   <li><a>cCustomMetric</a></li>
--   <li><a>cCountMillis</a></li>
--   <li><a>cQuantityMillis</a></li>
--   <li><a>cAdId</a></li>
--   <li><a>cDeviceType</a></li>
--   <li><a>cType</a></li>
--   <li><a>cCustomDimension</a></li>
--   <li><a>cFloodlightOrderId</a></li>
--   <li><a>cRevenueMicros</a></li>
--   <li><a>cClickId</a></li>
--   <li><a>cInventoryAccountId</a></li>
--   <li><a>cSegmentationType</a></li>
--   <li><a>cProductId</a></li>
--   <li><a>cProductGroupId</a></li>
--   </ul>
conversion :: Conversion

-- | DS ad group ID.
cAdGroupId :: Lens' Conversion (Maybe Int64)

-- | The time at which the conversion was last modified, in epoch millis
--   UTC.
cConversionModifiedTimestamp :: Lens' Conversion (Maybe Word64)

-- | The state of the conversion, that is, either ACTIVE or REMOVED. Note:
--   state DELETED is deprecated.
cState :: Lens' Conversion (Maybe Text)

-- | DS engine account ID.
cEngineAccountId :: Lens' Conversion (Maybe Int64)

-- | DS agency ID.
cAgencyId :: Lens' Conversion (Maybe Int64)

-- | The currency code for the conversion's revenue. Should be in ISO 4217
--   alphabetic (3-char) format.
cCurrencyCode :: Lens' Conversion (Maybe Text)

-- | The ID of the local store for which the product was advertised.
--   Applicable only when the channel is "local".
cStoreId :: Lens' Conversion (Maybe Text)

-- | ID that DoubleClick Search generates for each conversion.
cDsConversionId :: Lens' Conversion (Maybe Int64)

-- | For offline conversions, this is an ID that advertisers are required
--   to provide. Advertisers can specify any ID that is meaningful to them.
--   For online conversions, DS copies the dsConversionId or
--   floodlightOrderId into this property depending on the advertiser's
--   Floodlight instructions.
cConversionId :: Lens' Conversion (Maybe Text)

-- | DS advertiser ID.
cAdvertiserId :: Lens' Conversion (Maybe Int64)

-- | The numeric segmentation identifier (for example, DoubleClick Search
--   Floodlight activity ID).
cSegmentationId :: Lens' Conversion (Maybe Int64)

-- | Sales channel for the product. Acceptable values are: - "local": a
--   physical store - "online": an online store
cChannel :: Lens' Conversion (Maybe Text)

-- | The country registered for the Merchant Center feed that contains the
--   product. Use an ISO 3166 code to specify a country.
cProductCountry :: Lens' Conversion (Maybe Text)

-- | DS campaign ID.
cCampaignId :: Lens' Conversion (Maybe Int64)

-- | DS criterion (keyword) ID.
cCriterionId :: Lens' Conversion (Maybe Int64)

-- | The time at which the conversion took place, in epoch millis UTC.
cConversionTimestamp :: Lens' Conversion (Maybe Word64)

-- | Available to advertisers only after contacting DoubleClick Search
--   customer support.
cAttributionModel :: Lens' Conversion (Maybe Text)

-- | The friendly segmentation identifier (for example, DoubleClick Search
--   Floodlight activity name).
cSegmentationName :: Lens' Conversion (Maybe Text)

-- | The language registered for the Merchant Center feed that contains the
--   product. Use an ISO 639 code to specify a language.
cProductLanguage :: Lens' Conversion (Maybe Text)

-- | Custom metrics for the conversion.
cCustomMetric :: Lens' Conversion [CustomMetric]

-- | Available to advertisers only after contacting DoubleClick Search
--   customer support.
cCountMillis :: Lens' Conversion (Maybe Int64)

-- | The quantity of this conversion, in millis.
cQuantityMillis :: Lens' Conversion (Maybe Int64)

-- | DS ad ID.
cAdId :: Lens' Conversion (Maybe Int64)

-- | The type of device on which the conversion occurred.
cDeviceType :: Lens' Conversion (Maybe Text)

-- | The type of the conversion, that is, either ACTION or TRANSACTION. An
--   ACTION conversion is an action by the user that has no monetarily
--   quantifiable value, while a TRANSACTION conversion is an action that
--   does have a monetarily quantifiable value. Examples are email list
--   signups (ACTION) versus ecommerce purchases (TRANSACTION).
cType :: Lens' Conversion (Maybe Text)

-- | Custom dimensions for the conversion, which can be used to filter data
--   in a report.
cCustomDimension :: Lens' Conversion [CustomDimension]

-- | The Floodlight order ID provided by the advertiser for the conversion.
cFloodlightOrderId :: Lens' Conversion (Maybe Text)

-- | The revenue amount of this TRANSACTION conversion, in micros (value
--   multiplied by 1000000, no decimal). For example, to specify a revenue
--   value of "10" enter "10000000" (10 million) in your request.
cRevenueMicros :: Lens' Conversion (Maybe Int64)

-- | DS click ID for the conversion.
cClickId :: Lens' Conversion (Maybe Text)

-- | ID that DS generates and uses to uniquely identify the inventory
--   account that contains the product.
cInventoryAccountId :: Lens' Conversion (Maybe Int64)

-- | The segmentation type of this conversion (for example, FLOODLIGHT).
cSegmentationType :: Lens' Conversion (Maybe Text)

-- | The product ID (SKU).
cProductId :: Lens' Conversion (Maybe Text)

-- | DS product group ID.
cProductGroupId :: Lens' Conversion (Maybe Int64)

-- | A saved column
--   
--   <i>See:</i> <a>savedColumn</a> smart constructor.
data SavedColumn

-- | Creates a value of <a>SavedColumn</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scSavedColumnName</a></li>
--   <li><a>scKind</a></li>
--   <li><a>scType</a></li>
--   </ul>
savedColumn :: SavedColumn

-- | The name of the saved column.
scSavedColumnName :: Lens' SavedColumn (Maybe Text)

-- | Identifies this as a SavedColumn resource. Value: the fixed string
--   doubleclicksearch#savedColumn.
scKind :: Lens' SavedColumn Text

-- | The type of data this saved column will produce.
scType :: Lens' SavedColumn (Maybe Text)

-- | A message containing the custome dimension.
--   
--   <i>See:</i> <a>customDimension</a> smart constructor.
data CustomDimension

-- | Creates a value of <a>CustomDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdValue</a></li>
--   <li><a>cdName</a></li>
--   </ul>
customDimension :: CustomDimension

-- | Custom dimension value.
cdValue :: Lens' CustomDimension (Maybe Text)

-- | Custom dimension name.
cdName :: Lens' CustomDimension (Maybe Text)

-- | The response to a update availability request.
--   
--   <i>See:</i> <a>updateAvailabilityResponse</a> smart constructor.
data UpdateAvailabilityResponse

-- | Creates a value of <a>UpdateAvailabilityResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uAvailabilities</a></li>
--   </ul>
updateAvailabilityResponse :: UpdateAvailabilityResponse

-- | The availabilities being returned.
uAvailabilities :: Lens' UpdateAvailabilityResponse [Availability]

-- | The reportScope is a set of IDs that are used to determine which
--   subset of entities will be returned in the report. The full lineage of
--   IDs from the lowest scoped level desired up through agency is
--   required.
--   
--   <i>See:</i> <a>reportRequestReportScope</a> smart constructor.
data ReportRequestReportScope

-- | Creates a value of <a>ReportRequestReportScope</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrrsKeywordId</a></li>
--   <li><a>rrrsAdGroupId</a></li>
--   <li><a>rrrsEngineAccountId</a></li>
--   <li><a>rrrsAgencyId</a></li>
--   <li><a>rrrsAdvertiserId</a></li>
--   <li><a>rrrsCampaignId</a></li>
--   <li><a>rrrsAdId</a></li>
--   </ul>
reportRequestReportScope :: ReportRequestReportScope

-- | DS keyword ID.
rrrsKeywordId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS ad group ID.
rrrsAdGroupId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS engine account ID.
rrrsEngineAccountId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS agency ID.
rrrsAgencyId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS advertiser ID.
rrrsAdvertiserId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS campaign ID.
rrrsCampaignId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS ad ID.
rrrsAdId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | A list of saved columns. Advertisers create saved columns to report on
--   Floodlight activities, Google Analytics goals, or custom KPIs. To
--   request reports with saved columns, you'll need the saved column names
--   that are available from this list.
--   
--   <i>See:</i> <a>savedColumnList</a> smart constructor.
data SavedColumnList

-- | Creates a value of <a>SavedColumnList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclKind</a></li>
--   <li><a>sclItems</a></li>
--   </ul>
savedColumnList :: SavedColumnList

-- | Identifies this as a SavedColumnList resource. Value: the fixed string
--   doubleclicksearch#savedColumnList.
sclKind :: Lens' SavedColumnList Text

-- | The saved columns being requested.
sclItems :: Lens' SavedColumnList [SavedColumn]


-- | Retrieves a list of conversions from a DoubleClick Search engine
--   account.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.conversion.get</tt>.
module Network.Google.Resource.DoubleClickSearch.Conversion.Get

-- | A resource alias for <tt>doubleclicksearch.conversion.get</tt> method
--   which the <a>ConversionGet</a> request conforms to.
type ConversionGetResource = "doubleclicksearch" :> ("v2" :> ("agency" :> (Capture "agencyId" (Textual Int64) :> ("advertiser" :> (Capture "advertiserId" (Textual Int64) :> ("engine" :> (Capture "engineAccountId" (Textual Int64) :> ("conversion" :> (QueryParam "endDate" (Textual Int32) :> (QueryParam "rowCount" (Textual Int32) :> (QueryParam "startDate" (Textual Int32) :> (QueryParam "startRow" (Textual Word32) :> (QueryParam "adGroupId" (Textual Int64) :> (QueryParam "campaignId" (Textual Int64) :> (QueryParam "criterionId" (Textual Int64) :> (QueryParam "adId" (Textual Int64) :> (QueryParam "alt" AltJSON :> Get '[JSON] ConversionList)))))))))))))))))

-- | Creates a value of <a>ConversionGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgAdGroupId</a></li>
--   <li><a>cgEngineAccountId</a></li>
--   <li><a>cgAgencyId</a></li>
--   <li><a>cgAdvertiserId</a></li>
--   <li><a>cgEndDate</a></li>
--   <li><a>cgCampaignId</a></li>
--   <li><a>cgCriterionId</a></li>
--   <li><a>cgStartDate</a></li>
--   <li><a>cgStartRow</a></li>
--   <li><a>cgAdId</a></li>
--   <li><a>cgRowCount</a></li>
--   </ul>
conversionGet :: Int64 -> Int64 -> Int64 -> Int32 -> Int32 -> Word32 -> Int32 -> ConversionGet

-- | Retrieves a list of conversions from a DoubleClick Search engine
--   account.
--   
--   <i>See:</i> <a>conversionGet</a> smart constructor.
data ConversionGet

-- | Numeric ID of the ad group.
cgAdGroupId :: Lens' ConversionGet (Maybe Int64)

-- | Numeric ID of the engine account.
cgEngineAccountId :: Lens' ConversionGet Int64

-- | Numeric ID of the agency.
cgAgencyId :: Lens' ConversionGet Int64

-- | Numeric ID of the advertiser.
cgAdvertiserId :: Lens' ConversionGet Int64

-- | Last date (inclusive) on which to retrieve conversions. Format is
--   yyyymmdd.
cgEndDate :: Lens' ConversionGet Int32

-- | Numeric ID of the campaign.
cgCampaignId :: Lens' ConversionGet (Maybe Int64)

-- | Numeric ID of the criterion.
cgCriterionId :: Lens' ConversionGet (Maybe Int64)

-- | First date (inclusive) on which to retrieve conversions. Format is
--   yyyymmdd.
cgStartDate :: Lens' ConversionGet Int32

-- | The 0-based starting index for retrieving conversions results.
cgStartRow :: Lens' ConversionGet Word32

-- | Numeric ID of the ad.
cgAdId :: Lens' ConversionGet (Maybe Int64)

-- | The number of conversions to return per call.
cgRowCount :: Lens' ConversionGet Int32
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Conversion.Get.ConversionGet
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Conversion.Get.ConversionGet
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Conversion.Get.ConversionGet
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Conversion.Get.ConversionGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Conversion.Get.ConversionGet


-- | Inserts a batch of new conversions into DoubleClick Search.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.conversion.insert</tt>.
module Network.Google.Resource.DoubleClickSearch.Conversion.Insert

-- | A resource alias for <tt>doubleclicksearch.conversion.insert</tt>
--   method which the <a>ConversionInsert</a> request conforms to.
type ConversionInsertResource = "doubleclicksearch" :> ("v2" :> ("conversion" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ConversionList :> Post '[JSON] ConversionList))))

-- | Creates a value of <a>ConversionInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciPayload</a></li>
--   </ul>
conversionInsert :: ConversionList -> ConversionInsert

-- | Inserts a batch of new conversions into DoubleClick Search.
--   
--   <i>See:</i> <a>conversionInsert</a> smart constructor.
data ConversionInsert

-- | Multipart request metadata.
ciPayload :: Lens' ConversionInsert ConversionList
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Conversion.Insert.ConversionInsert
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Conversion.Insert.ConversionInsert
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Conversion.Insert.ConversionInsert
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Conversion.Insert.ConversionInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Conversion.Insert.ConversionInsert


-- | Updates a batch of conversions in DoubleClick Search. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.conversion.patch</tt>.
module Network.Google.Resource.DoubleClickSearch.Conversion.Patch

-- | A resource alias for <tt>doubleclicksearch.conversion.patch</tt>
--   method which the <a>ConversionPatch</a> request conforms to.
type ConversionPatchResource = "doubleclicksearch" :> ("v2" :> ("conversion" :> (QueryParam "advertiserId" (Textual Int64) :> (QueryParam "agencyId" (Textual Int64) :> (QueryParam "endDate" (Textual Int32) :> (QueryParam "engineAccountId" (Textual Int64) :> (QueryParam "rowCount" (Textual Int32) :> (QueryParam "startDate" (Textual Int32) :> (QueryParam "startRow" (Textual Word32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ConversionList :> Patch '[JSON] ConversionList)))))))))))

-- | Creates a value of <a>ConversionPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpEngineAccountId</a></li>
--   <li><a>cpAgencyId</a></li>
--   <li><a>cpAdvertiserId</a></li>
--   <li><a>cpEndDate</a></li>
--   <li><a>cpPayload</a></li>
--   <li><a>cpStartDate</a></li>
--   <li><a>cpStartRow</a></li>
--   <li><a>cpRowCount</a></li>
--   </ul>
conversionPatch :: Int64 -> Int64 -> Int64 -> Int32 -> ConversionList -> Int32 -> Word32 -> Int32 -> ConversionPatch

-- | Updates a batch of conversions in DoubleClick Search. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>conversionPatch</a> smart constructor.
data ConversionPatch

-- | Numeric ID of the engine account.
cpEngineAccountId :: Lens' ConversionPatch Int64

-- | Numeric ID of the agency.
cpAgencyId :: Lens' ConversionPatch Int64

-- | Numeric ID of the advertiser.
cpAdvertiserId :: Lens' ConversionPatch Int64

-- | Last date (inclusive) on which to retrieve conversions. Format is
--   yyyymmdd.
cpEndDate :: Lens' ConversionPatch Int32

-- | Multipart request metadata.
cpPayload :: Lens' ConversionPatch ConversionList

-- | First date (inclusive) on which to retrieve conversions. Format is
--   yyyymmdd.
cpStartDate :: Lens' ConversionPatch Int32

-- | The 0-based starting index for retrieving conversions results.
cpStartRow :: Lens' ConversionPatch Word32

-- | The number of conversions to return per call.
cpRowCount :: Lens' ConversionPatch Int32
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Conversion.Patch.ConversionPatch
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Conversion.Patch.ConversionPatch
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Conversion.Patch.ConversionPatch
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Conversion.Patch.ConversionPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Conversion.Patch.ConversionPatch


-- | Updates a batch of conversions in DoubleClick Search.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.conversion.update</tt>.
module Network.Google.Resource.DoubleClickSearch.Conversion.Update

-- | A resource alias for <tt>doubleclicksearch.conversion.update</tt>
--   method which the <a>ConversionUpdate</a> request conforms to.
type ConversionUpdateResource = "doubleclicksearch" :> ("v2" :> ("conversion" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ConversionList :> Put '[JSON] ConversionList))))

-- | Creates a value of <a>ConversionUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cuPayload</a></li>
--   </ul>
conversionUpdate :: ConversionList -> ConversionUpdate

-- | Updates a batch of conversions in DoubleClick Search.
--   
--   <i>See:</i> <a>conversionUpdate</a> smart constructor.
data ConversionUpdate

-- | Multipart request metadata.
cuPayload :: Lens' ConversionUpdate ConversionList
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Conversion.Update.ConversionUpdate
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Conversion.Update.ConversionUpdate
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Conversion.Update.ConversionUpdate
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Conversion.Update.ConversionUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Conversion.Update.ConversionUpdate


-- | Updates the availabilities of a batch of floodlight activities in
--   DoubleClick Search.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.conversion.updateAvailability</tt>.
module Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability

-- | A resource alias for
--   <tt>doubleclicksearch.conversion.updateAvailability</tt> method which
--   the <a>ConversionUpdateAvailability</a> request conforms to.
type ConversionUpdateAvailabilityResource = "doubleclicksearch" :> ("v2" :> ("conversion" :> ("updateAvailability" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UpdateAvailabilityRequest :> Post '[JSON] UpdateAvailabilityResponse)))))

-- | Creates a value of <a>ConversionUpdateAvailability</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cuaPayload</a></li>
--   </ul>
conversionUpdateAvailability :: UpdateAvailabilityRequest -> ConversionUpdateAvailability

-- | Updates the availabilities of a batch of floodlight activities in
--   DoubleClick Search.
--   
--   <i>See:</i> <a>conversionUpdateAvailability</a> smart constructor.
data ConversionUpdateAvailability

-- | Multipart request metadata.
cuaPayload :: Lens' ConversionUpdateAvailability UpdateAvailabilityRequest
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability.ConversionUpdateAvailability
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability.ConversionUpdateAvailability
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability.ConversionUpdateAvailability
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability.ConversionUpdateAvailability
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Conversion.UpdateAvailability.ConversionUpdateAvailability


-- | Generates and returns a report immediately.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.reports.generate</tt>.
module Network.Google.Resource.DoubleClickSearch.Reports.Generate

-- | A resource alias for <tt>doubleclicksearch.reports.generate</tt>
--   method which the <a>ReportsGenerate</a> request conforms to.
type ReportsGenerateResource = "doubleclicksearch" :> ("v2" :> ("reports" :> ("generate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ReportRequest :> Post '[JSON] Report)))))

-- | Creates a value of <a>ReportsGenerate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rgPayload</a></li>
--   </ul>
reportsGenerate :: ReportRequest -> ReportsGenerate

-- | Generates and returns a report immediately.
--   
--   <i>See:</i> <a>reportsGenerate</a> smart constructor.
data ReportsGenerate

-- | Multipart request metadata.
rgPayload :: Lens' ReportsGenerate ReportRequest
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Reports.Generate.ReportsGenerate
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Reports.Generate.ReportsGenerate
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Reports.Generate.ReportsGenerate
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Reports.Generate.ReportsGenerate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Reports.Generate.ReportsGenerate


-- | Polls for the status of a report request.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.reports.get</tt>.
module Network.Google.Resource.DoubleClickSearch.Reports.Get

-- | A resource alias for <tt>doubleclicksearch.reports.get</tt> method
--   which the <a>ReportsGet</a> request conforms to.
type ReportsGetResource = "doubleclicksearch" :> ("v2" :> ("reports" :> (Capture "reportId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Report))))

-- | Creates a value of <a>ReportsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rgReportId</a></li>
--   </ul>
reportsGet :: Text -> ReportsGet

-- | Polls for the status of a report request.
--   
--   <i>See:</i> <a>reportsGet</a> smart constructor.
data ReportsGet

-- | ID of the report request being polled.
rgReportId :: Lens' ReportsGet Text
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Reports.Get.ReportsGet
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Reports.Get.ReportsGet
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Reports.Get.ReportsGet
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Reports.Get.ReportsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Reports.Get.ReportsGet


-- | Downloads a report file encoded in UTF-8.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.reports.getFile</tt>.
module Network.Google.Resource.DoubleClickSearch.Reports.GetFile

-- | A resource alias for <tt>doubleclicksearch.reports.getFile</tt> method
--   which the <a>ReportsGetFile</a> request conforms to.
type ReportsGetFileResource = ("doubleclicksearch" :> ("v2" :> ("reports" :> (Capture "reportId" Text :> ("files" :> (Capture "reportFragment" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ()))))))) :<|> ("doubleclicksearch" :> ("v2" :> ("reports" :> (Capture "reportId" Text :> ("files" :> (Capture "reportFragment" (Textual Int32) :> (QueryParam "alt" AltMedia :> Get '[OctetStream] Stream)))))))

-- | Creates a value of <a>ReportsGetFile</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rgfReportId</a></li>
--   <li><a>rgfReportFragment</a></li>
--   </ul>
reportsGetFile :: Text -> Int32 -> ReportsGetFile

-- | Downloads a report file encoded in UTF-8.
--   
--   <i>See:</i> <a>reportsGetFile</a> smart constructor.
data ReportsGetFile

-- | ID of the report.
rgfReportId :: Lens' ReportsGetFile Text

-- | The index of the report fragment to download.
rgfReportFragment :: Lens' ReportsGetFile Int32
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaDownload Network.Google.Resource.DoubleClickSearch.Reports.GetFile.ReportsGetFile)


-- | Inserts a report request into the reporting system.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.reports.request</tt>.
module Network.Google.Resource.DoubleClickSearch.Reports.Request

-- | A resource alias for <tt>doubleclicksearch.reports.request</tt> method
--   which the <a>ReportsRequest</a> request conforms to.
type ReportsRequestResource = "doubleclicksearch" :> ("v2" :> ("reports" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ReportRequest :> Post '[JSON] Report))))

-- | Creates a value of <a>ReportsRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrPayload</a></li>
--   </ul>
reportsRequest :: ReportRequest -> ReportsRequest

-- | Inserts a report request into the reporting system.
--   
--   <i>See:</i> <a>reportsRequest</a> smart constructor.
data ReportsRequest

-- | Multipart request metadata.
rrPayload :: Lens' ReportsRequest ReportRequest
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.Reports.Request.ReportsRequest
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.Reports.Request.ReportsRequest
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.Reports.Request.ReportsRequest
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.Reports.Request.ReportsRequest
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.Reports.Request.ReportsRequest


-- | Retrieve the list of saved columns for a specified advertiser.
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a> for
--   <tt>doubleclicksearch.savedColumns.list</tt>.
module Network.Google.Resource.DoubleClickSearch.SavedColumns.List

-- | A resource alias for <tt>doubleclicksearch.savedColumns.list</tt>
--   method which the <a>SavedColumnsList</a> request conforms to.
type SavedColumnsListResource = "doubleclicksearch" :> ("v2" :> ("agency" :> (Capture "agencyId" (Textual Int64) :> ("advertiser" :> (Capture "advertiserId" (Textual Int64) :> ("savedcolumns" :> (QueryParam "alt" AltJSON :> Get '[JSON] SavedColumnList)))))))

-- | Creates a value of <a>SavedColumnsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclAgencyId</a></li>
--   <li><a>sclAdvertiserId</a></li>
--   </ul>
savedColumnsList :: Int64 -> Int64 -> SavedColumnsList

-- | Retrieve the list of saved columns for a specified advertiser.
--   
--   <i>See:</i> <a>savedColumnsList</a> smart constructor.
data SavedColumnsList

-- | DS ID of the agency.
sclAgencyId :: Lens' SavedColumnsList Int64

-- | DS ID of the advertiser.
sclAdvertiserId :: Lens' SavedColumnsList Int64
instance GHC.Generics.Generic Network.Google.Resource.DoubleClickSearch.SavedColumns.List.SavedColumnsList
instance Data.Data.Data Network.Google.Resource.DoubleClickSearch.SavedColumns.List.SavedColumnsList
instance GHC.Show.Show Network.Google.Resource.DoubleClickSearch.SavedColumns.List.SavedColumnsList
instance GHC.Classes.Eq Network.Google.Resource.DoubleClickSearch.SavedColumns.List.SavedColumnsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DoubleClickSearch.SavedColumns.List.SavedColumnsList


-- | Reports and modifies your advertising data in DoubleClick Search (for
--   example, campaigns, ad groups, keywords, and conversions).
--   
--   <i>See:</i> <a>DoubleClick Search API Reference</a>
module Network.Google.DoubleClickSearch

-- | Default request referring to version <tt>v2</tt> of the DoubleClick
--   Search API. This contains the host and root path used as a starting
--   point for constructing service requests.
doubleClickSearchService :: ServiceConfig

-- | View and manage your advertising data in DoubleClick Search
doubleClickSearchScope :: Proxy '["https://www.googleapis.com/auth/doubleclicksearch"]

-- | Represents the entirety of the methods and resources available for the
--   DoubleClick Search API service.
type DoubleClickSearchAPI = ReportsGetResource :<|> (ReportsGetFileResource :<|> (ReportsGenerateResource :<|> (ReportsRequestResource :<|> (SavedColumnsListResource :<|> (ConversionInsertResource :<|> (ConversionPatchResource :<|> (ConversionGetResource :<|> (ConversionUpdateAvailabilityResource :<|> ConversionUpdateResource))))))))

-- | A row in a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportRow</a> smart constructor.
data ReportRow

-- | Creates a value of <a>ReportRow</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrAddtional</a></li>
--   </ul>
reportRow :: HashMap Text JSONValue -> ReportRow

-- | Indicates the columns that are represented in this row. That is, each
--   key corresponds to a column with a non-empty cell in this row.
rrAddtional :: Lens' ReportRow (HashMap Text JSONValue)

-- | A request object used to create a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportRequest</a> smart constructor.
data ReportRequest

-- | Creates a value of <a>ReportRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrMaxRowsPerFile</a></li>
--   <li><a>rrReportScope</a></li>
--   <li><a>rrStatisticsCurrency</a></li>
--   <li><a>rrTimeRange</a></li>
--   <li><a>rrOrderBy</a></li>
--   <li><a>rrFilters</a></li>
--   <li><a>rrIncludeRemovedEntities</a></li>
--   <li><a>rrIncludeDeletedEntities</a></li>
--   <li><a>rrDownloadFormat</a></li>
--   <li><a>rrStartRow</a></li>
--   <li><a>rrColumns</a></li>
--   <li><a>rrReportType</a></li>
--   <li><a>rrVerifySingleTimeZone</a></li>
--   <li><a>rrRowCount</a></li>
--   </ul>
reportRequest :: ReportRequest

-- | Asynchronous report only. The maximum number of rows per report file.
--   A large report is split into many files based on this field.
--   Acceptable values are 1000000 to 100000000, inclusive.
rrMaxRowsPerFile :: Lens' ReportRequest (Maybe Int32)

-- | The reportScope is a set of IDs that are used to determine which
--   subset of entities will be returned in the report. The full lineage of
--   IDs from the lowest scoped level desired up through agency is
--   required.
rrReportScope :: Lens' ReportRequest (Maybe ReportRequestReportScope)

-- | Specifies the currency in which monetary will be returned. Possible
--   values are: usd, agency (valid if the report is scoped to agency or
--   lower), advertiser (valid if the report is scoped to * advertiser or
--   lower), or account (valid if the report is scoped to engine account or
--   lower).
rrStatisticsCurrency :: Lens' ReportRequest (Maybe Text)

-- | If metrics are requested in a report, this argument will be used to
--   restrict the metrics to a specific time range.
rrTimeRange :: Lens' ReportRequest (Maybe ReportRequestTimeRange)

-- | Synchronous report only. A list of columns and directions defining
--   sorting to be performed on the report rows.
rrOrderBy :: Lens' ReportRequest [ReportRequestOrderByItem]

-- | A list of filters to be applied to the report.
rrFilters :: Lens' ReportRequest [ReportRequestFiltersItem]

-- | Determines if removed entities should be included in the report.
--   Defaults to false.
rrIncludeRemovedEntities :: Lens' ReportRequest Bool

-- | Determines if removed entities should be included in the report.
--   Defaults to false. Deprecated, please use includeRemovedEntities
--   instead.
rrIncludeDeletedEntities :: Lens' ReportRequest Bool

-- | Format that the report should be returned in. Currently csv or tsv is
--   supported.
rrDownloadFormat :: Lens' ReportRequest (Maybe Text)

-- | Synchronous report only. Zero-based index of the first row to return.
--   Acceptable values are 0 to 50000, inclusive. Defaults to 0.
rrStartRow :: Lens' ReportRequest Int32

-- | The columns to include in the report. This includes both DoubleClick
--   Search columns and saved columns. For DoubleClick Search columns, only
--   the columnName parameter is required. For saved columns only the
--   savedColumnName parameter is required. Both columnName and
--   savedColumnName cannot be set in the same stanza.
rrColumns :: Lens' ReportRequest [ReportAPIColumnSpec]

-- | Determines the type of rows that are returned in the report. For
--   example, if you specify reportType: keyword, each row in the report
--   will contain data about a keyword. See the Types of Reports reference
--   for the columns that are available for each type.
rrReportType :: Lens' ReportRequest (Maybe Text)

-- | If true, the report would only be created if all the requested stat
--   data are sourced from a single timezone. Defaults to false.
rrVerifySingleTimeZone :: Lens' ReportRequest Bool

-- | Synchronous report only. The maxinum number of rows to return;
--   additional rows are dropped. Acceptable values are 0 to 10000,
--   inclusive. Defaults to 10000.
rrRowCount :: Lens' ReportRequest Int32
data ReportRequestOrderByItem

-- | Creates a value of <a>ReportRequestOrderByItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrobiSortOrder</a></li>
--   <li><a>rrobiColumn</a></li>
--   </ul>
reportRequestOrderByItem :: ReportRequestOrderByItem

-- | The sort direction, which is either ascending or descending.
rrobiSortOrder :: Lens' ReportRequestOrderByItem (Maybe Text)

-- | Column to perform the sort on. This can be a DoubleClick
--   Search-defined column or a saved column.
rrobiColumn :: Lens' ReportRequestOrderByItem (Maybe ReportAPIColumnSpec)

-- | A DoubleClick Search report. This object contains the report request,
--   some report metadata such as currency code, and the generated report
--   rows or report files.
--   
--   <i>See:</i> <a>report</a> smart constructor.
data Report

-- | Creates a value of <a>Report</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rKind</a></li>
--   <li><a>rRows</a></li>
--   <li><a>rStatisticsCurrencyCode</a></li>
--   <li><a>rIsReportReady</a></li>
--   <li><a>rFiles</a></li>
--   <li><a>rId</a></li>
--   <li><a>rStatisticsTimeZone</a></li>
--   <li><a>rRowCount</a></li>
--   <li><a>rRequest</a></li>
--   </ul>
report :: Report

-- | Identifies this as a Report resource. Value: the fixed string
--   doubleclicksearch#report.
rKind :: Lens' Report Text

-- | Synchronous report only. Generated report rows.
rRows :: Lens' Report [ReportRow]

-- | The currency code of all monetary values produced in the report,
--   including values that are set by users (e.g., keyword bid settings)
--   and metrics (e.g., cost and revenue). The currency code of a report is
--   determined by the statisticsCurrency field of the report request.
rStatisticsCurrencyCode :: Lens' Report (Maybe Text)

-- | Asynchronous report only. True if and only if the report has completed
--   successfully and the report files are ready to be downloaded.
rIsReportReady :: Lens' Report (Maybe Bool)

-- | Asynchronous report only. Contains a list of generated report files
--   once the report has succesfully completed.
rFiles :: Lens' Report [ReportFilesItem]

-- | Asynchronous report only. Id of the report.
rId :: Lens' Report (Maybe Text)

-- | If all statistics of the report are sourced from the same time zone,
--   this would be it. Otherwise the field is unset.
rStatisticsTimeZone :: Lens' Report (Maybe Text)

-- | The number of report rows generated by the report, not including
--   headers.
rRowCount :: Lens' Report (Maybe Int32)

-- | The request that created the report. Optional fields not specified in
--   the original request are filled with default values.
rRequest :: Lens' Report (Maybe ReportRequest)
data ReportFilesItem

-- | Creates a value of <a>ReportFilesItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rfiURL</a></li>
--   <li><a>rfiByteCount</a></li>
--   </ul>
reportFilesItem :: ReportFilesItem

-- | Use this url to download the report file.
rfiURL :: Lens' ReportFilesItem (Maybe Text)

-- | The size of this report file in bytes.
rfiByteCount :: Lens' ReportFilesItem (Maybe Int64)
data ReportRequestFiltersItem

-- | Creates a value of <a>ReportRequestFiltersItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrfiOperator</a></li>
--   <li><a>rrfiValues</a></li>
--   <li><a>rrfiColumn</a></li>
--   </ul>
reportRequestFiltersItem :: ReportRequestFiltersItem

-- | Operator to use in the filter. See the filter reference for a list of
--   available operators.
rrfiOperator :: Lens' ReportRequestFiltersItem (Maybe Text)

-- | A list of values to filter the column value against.
rrfiValues :: Lens' ReportRequestFiltersItem [JSONValue]

-- | Column to perform the filter on. This can be a DoubleClick Search
--   column or a saved column.
rrfiColumn :: Lens' ReportRequestFiltersItem (Maybe ReportAPIColumnSpec)

-- | A message containing availability data relevant to DoubleClick Search.
--   
--   <i>See:</i> <a>availability</a> smart constructor.
data Availability

-- | Creates a value of <a>Availability</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAgencyId</a></li>
--   <li><a>aAdvertiserId</a></li>
--   <li><a>aSegmentationId</a></li>
--   <li><a>aSegmentationName</a></li>
--   <li><a>aAvailabilityTimestamp</a></li>
--   <li><a>aSegmentationType</a></li>
--   </ul>
availability :: Availability

-- | DS agency ID.
aAgencyId :: Lens' Availability (Maybe Int64)

-- | DS advertiser ID.
aAdvertiserId :: Lens' Availability (Maybe Int64)

-- | The numeric segmentation identifier (for example, DoubleClick Search
--   Floodlight activity ID).
aSegmentationId :: Lens' Availability (Maybe Int64)

-- | The friendly segmentation identifier (for example, DoubleClick Search
--   Floodlight activity name).
aSegmentationName :: Lens' Availability (Maybe Text)

-- | The time by which all conversions have been uploaded, in epoch millis
--   UTC.
aAvailabilityTimestamp :: Lens' Availability (Maybe Word64)

-- | The segmentation type that this availability is for (its default value
--   is FLOODLIGHT).
aSegmentationType :: Lens' Availability (Maybe Text)

-- | The request to update availability.
--   
--   <i>See:</i> <a>updateAvailabilityRequest</a> smart constructor.
data UpdateAvailabilityRequest

-- | Creates a value of <a>UpdateAvailabilityRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uarAvailabilities</a></li>
--   </ul>
updateAvailabilityRequest :: UpdateAvailabilityRequest

-- | The availabilities being requested.
uarAvailabilities :: Lens' UpdateAvailabilityRequest [Availability]

-- | A message containing the custome metric.
--   
--   <i>See:</i> <a>customMetric</a> smart constructor.
data CustomMetric

-- | Creates a value of <a>CustomMetric</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmValue</a></li>
--   <li><a>cmName</a></li>
--   </ul>
customMetric :: CustomMetric

-- | Custom metric numeric value.
cmValue :: Lens' CustomMetric (Maybe Double)

-- | Custom metric name.
cmName :: Lens' CustomMetric (Maybe Text)

-- | A list of conversions.
--   
--   <i>See:</i> <a>conversionList</a> smart constructor.
data ConversionList

-- | Creates a value of <a>ConversionList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clKind</a></li>
--   <li><a>clConversion</a></li>
--   </ul>
conversionList :: ConversionList

-- | Identifies this as a ConversionList resource. Value: the fixed string
--   doubleclicksearch#conversionList.
clKind :: Lens' ConversionList Text

-- | The conversions being requested.
clConversion :: Lens' ConversionList [Conversion]

-- | A request object used to create a DoubleClick Search report.
--   
--   <i>See:</i> <a>reportAPIColumnSpec</a> smart constructor.
data ReportAPIColumnSpec

-- | Creates a value of <a>ReportAPIColumnSpec</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>racsCustomDimensionName</a></li>
--   <li><a>racsSavedColumnName</a></li>
--   <li><a>racsGroupByColumn</a></li>
--   <li><a>racsCustomMetricName</a></li>
--   <li><a>racsEndDate</a></li>
--   <li><a>racsProductReportPerspective</a></li>
--   <li><a>racsStartDate</a></li>
--   <li><a>racsHeaderText</a></li>
--   <li><a>racsPlatformSource</a></li>
--   <li><a>racsColumnName</a></li>
--   </ul>
reportAPIColumnSpec :: ReportAPIColumnSpec

-- | Segments a report by a custom dimension. The report must be scoped to
--   an advertiser or lower, and the custom dimension must already be set
--   up in DoubleClick Search. The custom dimension name, which appears in
--   DoubleClick Search, is case sensitive. If used in a conversion report,
--   returns the value of the specified custom dimension for the given
--   conversion, if set. This column does not segment the conversion
--   report.
racsCustomDimensionName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Name of a saved column to include in the report. The report must be
--   scoped at advertiser or lower, and this saved column must already be
--   created in the DoubleClick Search UI.
racsSavedColumnName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Synchronous report only. Set to true to group by this column. Defaults
--   to false.
racsGroupByColumn :: Lens' ReportAPIColumnSpec Bool

-- | Name of a custom metric to include in the report. The report must be
--   scoped to an advertiser or lower, and the custom metric must already
--   be set up in DoubleClick Search. The custom metric name, which appears
--   in DoubleClick Search, is case sensitive.
racsCustomMetricName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Inclusive day in YYYY-MM-DD format. When provided, this overrides the
--   overall time range of the report for this column only. Must be
--   provided together with startDate.
racsEndDate :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Returns metrics only for a specific type of product activity. Accepted
--   values are: - "sold": returns metrics only for products that were sold
--   - "advertised": returns metrics only for products that were advertised
--   in a Shopping campaign, and that might or might not have been sold
racsProductReportPerspective :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Inclusive date in YYYY-MM-DD format. When provided, this overrides the
--   overall time range of the report for this column only. Must be
--   provided together with endDate.
racsStartDate :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Text used to identify this column in the report output; defaults to
--   columnName or savedColumnName when not specified. This can be used to
--   prevent collisions between DoubleClick Search columns and saved
--   columns with the same name.
racsHeaderText :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | The platform that is used to provide data for the custom dimension.
--   Acceptable values are "floodlight".
racsPlatformSource :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | Name of a DoubleClick Search column to include in the report.
racsColumnName :: Lens' ReportAPIColumnSpec (Maybe Text)

-- | If metrics are requested in a report, this argument will be used to
--   restrict the metrics to a specific time range.
--   
--   <i>See:</i> <a>reportRequestTimeRange</a> smart constructor.
data ReportRequestTimeRange

-- | Creates a value of <a>ReportRequestTimeRange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrtrEndDate</a></li>
--   <li><a>rrtrChangedAttributesSinceTimestamp</a></li>
--   <li><a>rrtrStartDate</a></li>
--   <li><a>rrtrChangedMetricsSinceTimestamp</a></li>
--   </ul>
reportRequestTimeRange :: ReportRequestTimeRange

-- | Inclusive date in YYYY-MM-DD format.
rrtrEndDate :: Lens' ReportRequestTimeRange (Maybe Text)

-- | Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z.
--   See additional references on how changed attribute reports work.
rrtrChangedAttributesSinceTimestamp :: Lens' ReportRequestTimeRange (Maybe UTCTime)

-- | Inclusive date in YYYY-MM-DD format.
rrtrStartDate :: Lens' ReportRequestTimeRange (Maybe Text)

-- | Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z.
--   See additional references on how changed metrics reports work.
rrtrChangedMetricsSinceTimestamp :: Lens' ReportRequestTimeRange (Maybe UTCTime)

-- | A conversion containing data relevant to DoubleClick Search.
--   
--   <i>See:</i> <a>conversion</a> smart constructor.
data Conversion

-- | Creates a value of <a>Conversion</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cAdGroupId</a></li>
--   <li><a>cConversionModifiedTimestamp</a></li>
--   <li><a>cState</a></li>
--   <li><a>cEngineAccountId</a></li>
--   <li><a>cAgencyId</a></li>
--   <li><a>cCurrencyCode</a></li>
--   <li><a>cStoreId</a></li>
--   <li><a>cDsConversionId</a></li>
--   <li><a>cConversionId</a></li>
--   <li><a>cAdvertiserId</a></li>
--   <li><a>cSegmentationId</a></li>
--   <li><a>cChannel</a></li>
--   <li><a>cProductCountry</a></li>
--   <li><a>cCampaignId</a></li>
--   <li><a>cCriterionId</a></li>
--   <li><a>cConversionTimestamp</a></li>
--   <li><a>cAttributionModel</a></li>
--   <li><a>cSegmentationName</a></li>
--   <li><a>cProductLanguage</a></li>
--   <li><a>cCustomMetric</a></li>
--   <li><a>cCountMillis</a></li>
--   <li><a>cQuantityMillis</a></li>
--   <li><a>cAdId</a></li>
--   <li><a>cDeviceType</a></li>
--   <li><a>cType</a></li>
--   <li><a>cCustomDimension</a></li>
--   <li><a>cFloodlightOrderId</a></li>
--   <li><a>cRevenueMicros</a></li>
--   <li><a>cClickId</a></li>
--   <li><a>cInventoryAccountId</a></li>
--   <li><a>cSegmentationType</a></li>
--   <li><a>cProductId</a></li>
--   <li><a>cProductGroupId</a></li>
--   </ul>
conversion :: Conversion

-- | DS ad group ID.
cAdGroupId :: Lens' Conversion (Maybe Int64)

-- | The time at which the conversion was last modified, in epoch millis
--   UTC.
cConversionModifiedTimestamp :: Lens' Conversion (Maybe Word64)

-- | The state of the conversion, that is, either ACTIVE or REMOVED. Note:
--   state DELETED is deprecated.
cState :: Lens' Conversion (Maybe Text)

-- | DS engine account ID.
cEngineAccountId :: Lens' Conversion (Maybe Int64)

-- | DS agency ID.
cAgencyId :: Lens' Conversion (Maybe Int64)

-- | The currency code for the conversion's revenue. Should be in ISO 4217
--   alphabetic (3-char) format.
cCurrencyCode :: Lens' Conversion (Maybe Text)

-- | The ID of the local store for which the product was advertised.
--   Applicable only when the channel is "local".
cStoreId :: Lens' Conversion (Maybe Text)

-- | ID that DoubleClick Search generates for each conversion.
cDsConversionId :: Lens' Conversion (Maybe Int64)

-- | For offline conversions, this is an ID that advertisers are required
--   to provide. Advertisers can specify any ID that is meaningful to them.
--   For online conversions, DS copies the dsConversionId or
--   floodlightOrderId into this property depending on the advertiser's
--   Floodlight instructions.
cConversionId :: Lens' Conversion (Maybe Text)

-- | DS advertiser ID.
cAdvertiserId :: Lens' Conversion (Maybe Int64)

-- | The numeric segmentation identifier (for example, DoubleClick Search
--   Floodlight activity ID).
cSegmentationId :: Lens' Conversion (Maybe Int64)

-- | Sales channel for the product. Acceptable values are: - "local": a
--   physical store - "online": an online store
cChannel :: Lens' Conversion (Maybe Text)

-- | The country registered for the Merchant Center feed that contains the
--   product. Use an ISO 3166 code to specify a country.
cProductCountry :: Lens' Conversion (Maybe Text)

-- | DS campaign ID.
cCampaignId :: Lens' Conversion (Maybe Int64)

-- | DS criterion (keyword) ID.
cCriterionId :: Lens' Conversion (Maybe Int64)

-- | The time at which the conversion took place, in epoch millis UTC.
cConversionTimestamp :: Lens' Conversion (Maybe Word64)

-- | Available to advertisers only after contacting DoubleClick Search
--   customer support.
cAttributionModel :: Lens' Conversion (Maybe Text)

-- | The friendly segmentation identifier (for example, DoubleClick Search
--   Floodlight activity name).
cSegmentationName :: Lens' Conversion (Maybe Text)

-- | The language registered for the Merchant Center feed that contains the
--   product. Use an ISO 639 code to specify a language.
cProductLanguage :: Lens' Conversion (Maybe Text)

-- | Custom metrics for the conversion.
cCustomMetric :: Lens' Conversion [CustomMetric]

-- | Available to advertisers only after contacting DoubleClick Search
--   customer support.
cCountMillis :: Lens' Conversion (Maybe Int64)

-- | The quantity of this conversion, in millis.
cQuantityMillis :: Lens' Conversion (Maybe Int64)

-- | DS ad ID.
cAdId :: Lens' Conversion (Maybe Int64)

-- | The type of device on which the conversion occurred.
cDeviceType :: Lens' Conversion (Maybe Text)

-- | The type of the conversion, that is, either ACTION or TRANSACTION. An
--   ACTION conversion is an action by the user that has no monetarily
--   quantifiable value, while a TRANSACTION conversion is an action that
--   does have a monetarily quantifiable value. Examples are email list
--   signups (ACTION) versus ecommerce purchases (TRANSACTION).
cType :: Lens' Conversion (Maybe Text)

-- | Custom dimensions for the conversion, which can be used to filter data
--   in a report.
cCustomDimension :: Lens' Conversion [CustomDimension]

-- | The Floodlight order ID provided by the advertiser for the conversion.
cFloodlightOrderId :: Lens' Conversion (Maybe Text)

-- | The revenue amount of this TRANSACTION conversion, in micros (value
--   multiplied by 1000000, no decimal). For example, to specify a revenue
--   value of "10" enter "10000000" (10 million) in your request.
cRevenueMicros :: Lens' Conversion (Maybe Int64)

-- | DS click ID for the conversion.
cClickId :: Lens' Conversion (Maybe Text)

-- | ID that DS generates and uses to uniquely identify the inventory
--   account that contains the product.
cInventoryAccountId :: Lens' Conversion (Maybe Int64)

-- | The segmentation type of this conversion (for example, FLOODLIGHT).
cSegmentationType :: Lens' Conversion (Maybe Text)

-- | The product ID (SKU).
cProductId :: Lens' Conversion (Maybe Text)

-- | DS product group ID.
cProductGroupId :: Lens' Conversion (Maybe Int64)

-- | A saved column
--   
--   <i>See:</i> <a>savedColumn</a> smart constructor.
data SavedColumn

-- | Creates a value of <a>SavedColumn</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scSavedColumnName</a></li>
--   <li><a>scKind</a></li>
--   <li><a>scType</a></li>
--   </ul>
savedColumn :: SavedColumn

-- | The name of the saved column.
scSavedColumnName :: Lens' SavedColumn (Maybe Text)

-- | Identifies this as a SavedColumn resource. Value: the fixed string
--   doubleclicksearch#savedColumn.
scKind :: Lens' SavedColumn Text

-- | The type of data this saved column will produce.
scType :: Lens' SavedColumn (Maybe Text)

-- | A message containing the custome dimension.
--   
--   <i>See:</i> <a>customDimension</a> smart constructor.
data CustomDimension

-- | Creates a value of <a>CustomDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdValue</a></li>
--   <li><a>cdName</a></li>
--   </ul>
customDimension :: CustomDimension

-- | Custom dimension value.
cdValue :: Lens' CustomDimension (Maybe Text)

-- | Custom dimension name.
cdName :: Lens' CustomDimension (Maybe Text)

-- | The response to a update availability request.
--   
--   <i>See:</i> <a>updateAvailabilityResponse</a> smart constructor.
data UpdateAvailabilityResponse

-- | Creates a value of <a>UpdateAvailabilityResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uAvailabilities</a></li>
--   </ul>
updateAvailabilityResponse :: UpdateAvailabilityResponse

-- | The availabilities being returned.
uAvailabilities :: Lens' UpdateAvailabilityResponse [Availability]

-- | The reportScope is a set of IDs that are used to determine which
--   subset of entities will be returned in the report. The full lineage of
--   IDs from the lowest scoped level desired up through agency is
--   required.
--   
--   <i>See:</i> <a>reportRequestReportScope</a> smart constructor.
data ReportRequestReportScope

-- | Creates a value of <a>ReportRequestReportScope</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rrrsKeywordId</a></li>
--   <li><a>rrrsAdGroupId</a></li>
--   <li><a>rrrsEngineAccountId</a></li>
--   <li><a>rrrsAgencyId</a></li>
--   <li><a>rrrsAdvertiserId</a></li>
--   <li><a>rrrsCampaignId</a></li>
--   <li><a>rrrsAdId</a></li>
--   </ul>
reportRequestReportScope :: ReportRequestReportScope

-- | DS keyword ID.
rrrsKeywordId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS ad group ID.
rrrsAdGroupId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS engine account ID.
rrrsEngineAccountId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS agency ID.
rrrsAgencyId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS advertiser ID.
rrrsAdvertiserId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS campaign ID.
rrrsCampaignId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | DS ad ID.
rrrsAdId :: Lens' ReportRequestReportScope (Maybe Int64)

-- | A list of saved columns. Advertisers create saved columns to report on
--   Floodlight activities, Google Analytics goals, or custom KPIs. To
--   request reports with saved columns, you'll need the saved column names
--   that are available from this list.
--   
--   <i>See:</i> <a>savedColumnList</a> smart constructor.
data SavedColumnList

-- | Creates a value of <a>SavedColumnList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sclKind</a></li>
--   <li><a>sclItems</a></li>
--   </ul>
savedColumnList :: SavedColumnList

-- | Identifies this as a SavedColumnList resource. Value: the fixed string
--   doubleclicksearch#savedColumnList.
sclKind :: Lens' SavedColumnList Text

-- | The saved columns being requested.
sclItems :: Lens' SavedColumnList [SavedColumn]
