// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.api.ads.dfp.jaxws.v201608;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
/**
*
* Provides methods for executing a {@link ReportJob} and retrieving performance
* and statistics about ad campaigns, networks, inventory and sales.
* <p>Follow the steps outlined below:</p>
* <p>
* <ul>
* <li>Create the {@code ReportJob} object by invoking
* {@link ReportService#runReportJob}.</li>
* <li>Poll the {@code ReportJob} object using
* {@link ReportService#getReportJob}.</li>
* <li>Continue to poll the {@code ReportJob} object until the
* {@link ReportJob#reportJobStatus} field is equal to
* {@link ReportJobStatus#COMPLETED} or {@link ReportJobStatus#FAILED}.</li>
* <li>If successful, fetch the URL for downloading the report by invoking
* {@link ReportService#getReportDownloadURL}.</li>
* </ul>
* </p>
*
* <h4>Test network behavior</h4>
*
* <p>
* The networks created using {@link NetworkService#makeTestNetwork} are unable
* to provide reports that would be comparable to the production environment
* because reports require traffic history.
* In the test networks, reports will consistently return no data for all reports.
* </p>
*
*
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.9-b130926.1035
* Generated source version: 2.1
*
*/
@WebService(name = "ReportServiceInterface", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@XmlSeeAlso({
ObjectFactory.class
})
public interface ReportServiceInterface {
/**
*
* Returns the URL at which the report file can be downloaded.
* <p>
* The report will be generated as a gzip archive, containing the report file itself.
*
* @param reportJobId the ID of the {@link ReportJob}
* @param exportFormat the {@link ExportFormat} for the report file
* @return the URL for report file download
*
*
* @param reportJobId
* @param exportFormat
* @return
* returns java.lang.String
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@RequestWrapper(localName = "getReportDownloadURL", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportDownloadURL")
@ResponseWrapper(localName = "getReportDownloadURLResponse", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportDownloadURLResponse")
public String getReportDownloadURL(
@WebParam(name = "reportJobId", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
Long reportJobId,
@WebParam(name = "exportFormat", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
ExportFormat exportFormat)
throws ApiException_Exception
;
/**
*
* Returns the URL at which the report file can be downloaded, and allows for customization
* of the downloaded report.
* <p>
* By default, the report will be generated as a gzip archive, containing the report file itself.
* This can be changed by setting {@link ReportDownloadOptions#useGzipCompression} to false.
*
* @param reportJobId the ID of the {@link ReportJob}
* @param reportDownloadOptions the {@link ReportDownloadOptions} for the request
* @return the URL for report file download
*
*
* @param reportDownloadOptions
* @param reportJobId
* @return
* returns java.lang.String
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@RequestWrapper(localName = "getReportDownloadUrlWithOptions", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportDownloadUrlWithOptions")
@ResponseWrapper(localName = "getReportDownloadUrlWithOptionsResponse", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportDownloadUrlWithOptionsResponse")
public String getReportDownloadUrlWithOptions(
@WebParam(name = "reportJobId", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
Long reportJobId,
@WebParam(name = "reportDownloadOptions", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
ReportDownloadOptions reportDownloadOptions)
throws ApiException_Exception
;
/**
*
* Returns the {@link ReportJobStatus} of the report job with the specified ID.
*
*
* @param reportJobId
* @return
* returns com.google.api.ads.dfp.jaxws.v201608.ReportJobStatus
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@RequestWrapper(localName = "getReportJobStatus", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportJobStatus")
@ResponseWrapper(localName = "getReportJobStatusResponse", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetReportJobStatusResponse")
public ReportJobStatus getReportJobStatus(
@WebParam(name = "reportJobId", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
Long reportJobId)
throws ApiException_Exception
;
/**
*
* Retrieves a page of the saved queries either created by or shared with the current user. Each
* {@link SavedQuery} in the page, if it is compatible with the current API version, will
* contain a {@link ReportQuery} object which can be optionally modified and used to create a
* {@link ReportJob}. This can then be passed to {@link ReportService#runReportJob}.
* The following fields are supported for filtering:
*
* <table>
* <tr>
* <th scope="col">PQL Property</th> <th scope="col">Object Property</th>
* </tr>
* <tr>
* <td>{@code id}</td>
* <td>{@link SavedQuery#id}</td>
* </tr>
* <tr>
* <td>{@code name}</td>
* <td>{@link SavedQuery#name}</td>
* </tr>
* </table>
*
* @param filterStatement a Publisher Query Language statement used to filter which saved queries
* should be returned.
* @return a {@link SavedQueryPage} that contains all {@link SavedQuery} instances which satisfy
* the given statement.
*
*
* @param filterStatement
* @return
* returns com.google.api.ads.dfp.jaxws.v201608.SavedQueryPage
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@RequestWrapper(localName = "getSavedQueriesByStatement", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetSavedQueriesByStatement")
@ResponseWrapper(localName = "getSavedQueriesByStatementResponse", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacegetSavedQueriesByStatementResponse")
public SavedQueryPage getSavedQueriesByStatement(
@WebParam(name = "filterStatement", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
Statement filterStatement)
throws ApiException_Exception
;
/**
*
* Initiates the execution of a {@link ReportQuery} on the server.
*
* <p>The following fields are required:
* <ul>
* <li>{@link ReportJob#reportQuery}</li>
* </ul>
*
* @param reportJob the report job to run
* @return the report job with its ID filled in
*
*
* @param reportJob
* @return
* returns com.google.api.ads.dfp.jaxws.v201608.ReportJob
* @throws ApiException_Exception
*/
@WebMethod
@WebResult(name = "rval", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
@RequestWrapper(localName = "runReportJob", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacerunReportJob")
@ResponseWrapper(localName = "runReportJobResponse", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608", className = "com.google.api.ads.dfp.jaxws.v201608.ReportServiceInterfacerunReportJobResponse")
public ReportJob runReportJob(
@WebParam(name = "reportJob", targetNamespace = "https://www.google.com/apis/ads/publisher/v201608")
ReportJob reportJob)
throws ApiException_Exception
;
}