// 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.
/**
* ProductServiceInterface.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Mar 02, 2009 (07:08:06 PST) WSDL2Java emitter.
*/
package com.google.api.ads.dfp.axis.v201611;
public interface ProductServiceInterface extends java.rmi.Remote {
/**
* Creates new {@link Product} objects. This method is only available
* when creating programmatic
* guaranteed products when not using sales management.
*
*
* @param products the products to create
*
* @return the created products with their IDs filled in
*/
public com.google.api.ads.dfp.axis.v201611.Product[] createProducts(com.google.api.ads.dfp.axis.v201611.Product[] products) throws java.rmi.RemoteException, com.google.api.ads.dfp.axis.v201611.ApiException;
/**
* Gets a {@link ProductPage} of {@link Product} objects that
* satisfy the criteria specified by
* given {@link Statement#query}.
* <p>
* When using sales management, the following fields are supported
* for filtering and/or sorting.
*
* <table>
* <tr>
* <th scope="col">PQL Property</th>
* <th scope="col">Object Property</th>
* <th scope="col">Filterable</th>
* <th scope="col">Sortable</th>
* </tr>
* <tr>
* <td>{@code rateCardId}</td>
* <td>Rate card ID which the product is associated with</td>
* <td>Yes</td>
* <td>No</td>
* </tr>
* <tr>
* <td>{@code status}</td>
* <td>{@link Product#status}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code lineItemType}</td>
* <td>{@link Product#lineItemType}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code productType}</td>
* <td>{@link Product#productType}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code rateType}</td>
* <td>{@link Product#rateType}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code productTemplateId}</td>
* <td>{@link Product#productTemplateId}</td>
* <td>Yes</td>
* <td>No</td>
* </tr>
* <tr>
* <td>{@code name}</td>
* <td>{@link Product#name}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code description}</td>
* <td>{@link Product#description}</td>
* <td>Yes</td>
* <td>No</td>
* </tr>
* <tr>
* <td>{@code id}</td>
* <td>{@link Product#id}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code lastModifiedDateTime}</td>
* <td>{@link Product#lastModifiedDateTime}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* </table>
*
* When using programmatic guaranteed and not sales management,
* the following fields are supported for filtering and/or sorting.
*
* <table>
* <tr>
* <th scope="col">PQL Property</th>
* <th scope="col">Object Property</th>
* <th scope="col">Filterable</th>
* <th scope="col">Sortable</th>
* </tr>
* <tr>
* <td>{@code status}</td>
* <td>{@link Product#status}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code rateType}</td>
* <td>{@link Product#rateType}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code name}</td>
* <td>{@link Product#name}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code id}</td>
* <td>{@link Product#id}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* <tr>
* <td>{@code lastModifiedDateTime}</td>
* <td>{@link Product#lastModifiedDateTime}</td>
* <td>Yes</td>
* <td>Yes</td>
* </tr>
* </table>
*
*
* @param statement a Publisher Query Language statement which specifies
* the filtering
* criteria over products
*
* @return the products that match the given statement
*/
public com.google.api.ads.dfp.axis.v201611.ProductPage getProductsByStatement(com.google.api.ads.dfp.axis.v201611.Statement statement) throws java.rmi.RemoteException, com.google.api.ads.dfp.axis.v201611.ApiException;
/**
* Performs action on {@link Product} objects that satisfy the
* given {@link Statement}.
*
*
* @param productAction the action to perform
*
* @param filterStatement a Publisher Query Language statement used to
* filter a set of products.
*
* @return the result of the action performed
*/
public com.google.api.ads.dfp.axis.v201611.UpdateResult performProductAction(com.google.api.ads.dfp.axis.v201611.ProductAction productAction, com.google.api.ads.dfp.axis.v201611.Statement filterStatement) throws java.rmi.RemoteException, com.google.api.ads.dfp.axis.v201611.ApiException;
/**
* Updates the specified {@link Product} objects.
* Note non-updatable fields will not be backfilled.
*
*
* @param products the products to update
*
* @return the updated products
*/
public com.google.api.ads.dfp.axis.v201611.Product[] updateProducts(com.google.api.ads.dfp.axis.v201611.Product[] products) throws java.rmi.RemoteException, com.google.api.ads.dfp.axis.v201611.ApiException;
}