Esempio n. 1
0
def ValidateAdExtension(extension, web_services):
  """Validate AdExtension object.

  Args:
    extension: dict AdExtension object.
    web_services: module for web services.

  Returns:
    AdExtension instance.
  """
  if IsPyClass(extension):
    return extension

  glob_sanity_check.ValidateTypes(((extension, dict),))
  if 'type' in extension:
    new_extension = GetPyClass(extension['type'], web_services)
  else:
    new_extension = GetPyClass('AdExtension', web_services)
  for key in extension:
    if extension[key] == 'None': continue
    if key in ('address',):
      data = ValidateAddress(extension[key], web_services)
    elif key in ('geoPoint',):
      data = ValidateGeoPoint(extension[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((extension[key], (str, unicode)),))
      data = extension[key]
    new_extension.__dict__.__setitem__('_%s' % key, data)

  return new_extension
Esempio n. 2
0
def ValidateBiddingStrategy(strategy, web_services):
  """Validate BiddingStrategy object.

  A BiddingStrategy is one of BudgetOptimizer, ConversionOptimizer, ManualCPC,
  ManualCPM.

  Args:
    strategy: dict BiddingStrategy object.
    web_services: module for web services.

  Returns:
    BiddingStrategy instance.
  """
  if IsPyClass(strategy):
    return strategy

  glob_sanity_check.ValidateTypes(((strategy, dict),))
  if 'type' in strategy:
    new_strategy = GetPyClass(strategy['type'], web_services)
  elif 'BiddingStrategy_Type' in strategy:
    new_strategy = GetPyClass(strategy['BiddingStrategy_Type'], web_services)
  else:
    msg = 'The \'type\' of the bidding transition is missing.'
    raise ValidationError(msg)
  for key in strategy:
    if strategy[key] == 'None': continue
    if key in ('bidCeiling',):
      data = ValidateMoney(strategy[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((strategy[key], (str, unicode)),))
      data = strategy[key]
    new_strategy.__dict__.__setitem__('_%s' % key, data)

  return new_strategy
Esempio n. 3
0
def ValidateBulkMutateRequest(bmr, web_services):
  """Validate BulkMutateRequest object.

  Args:
    bmr: dict BulkMutateRequest object.
    web_services: module for web services.

  Returns:
    BulkMutateRequest instance.
  """
  if IsPyClass(bmr):
    return bmr

  glob_sanity_check.ValidateTypes(((bmr, dict),))
  new_bmr = GetPyClass('BulkMutateRequest', web_services)
  for key in bmr:
    if bmr[key] == 'None': continue
    if key in ('operationStreams',):
      glob_sanity_check.ValidateTypes(((bmr[key], list),))
      streams = []
      for item in bmr[key]:
        stream = ValidateOperationStream(item, web_services)
        streams.append(stream)
      data = streams
    else:
      glob_sanity_check.ValidateTypes(((bmr[key], (str, unicode)),))
      data = bmr[key]
    new_bmr.__dict__.__setitem__('_%s' % key, data)

  return new_bmr
Esempio n. 4
0
def ValidateBid(bid, web_services):
  """Validate Bid object.

  Args:
    bid: dict Bid object.
    web_services: module for web services.

  Returns:
    Bid instance.
  """
  if IsPyClass(bid):
    return bid

  glob_sanity_check.ValidateTypes(((bid, dict),))
  new_bid = GetPyClass('Bid', web_services)
  for key in bid:
    if bid[key] == 'None': continue
    if key in ('amount',):
      data = ValidateMoney(bid[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((bid[key], (str, unicode)),))
      data = bid[key]
    new_bid.__dict__.__setitem__('_%s' % key, data)

  return new_bid
Esempio n. 5
0
    def Mutate(self, ops):
        """Create, update, or remove ad params.

    Args:
      ops: list unique operations.

    Returns:
      tuple mutated ad params.
    """
        method_name = 'mutateAdParam'
        if self.__config['soap_lib'] == SOAPPY:
            glob_sanity_check.ValidateTypes(((ops, list), ))
            new_ops = []
            for op in ops:
                self.__sanity_check.ValidateOperation(op)
                new_ops.append(
                    self.__message_handler.PackDictAsXml(op, 'operations'))
            ops = ''.join(new_ops)
            return self.__service.CallMethod(
                method_name.split(
                    self.__class__.__name__.split('Service')[0])[0], (ops))
        elif self.__config['soap_lib'] == ZSI:
            web_services = self.__web_services
            glob_sanity_check.ValidateTypes(((ops, list), ))
            for op in ops:
                op = self.__sanity_check.ValidateOperation(op, web_services)
            request = eval('web_services.%sRequest()' % method_name)
            return self.__service.CallMethod(method_name, (({
                'operations': ops
            }, )), 'AdParam', self.__loc, request)
Esempio n. 6
0
def ValidateCriterion(operator, criterion, web_services):
  """Validate Criterion object.

  A Criterion object is one of Keyword, Website, Placement.

  Args:
    operator: str operator to use.
    criterion: dict Criterion object.
    web_services: module for web services.

  Returns:
    dict/Criterion updated criterion object or Criterion instance.
  """
  if IsPyClass(criterion):
    return criterion

  glob_sanity_check.ValidateTypes(((criterion, dict),))
  if operator in ('ADD', ''):
    if 'criterionType' in criterion:
      new_criterion = GetPyClass(criterion['criterionType'], web_services)
    elif 'type' in criterion:
      new_criterion = GetPyClass(criterion['type'], web_services)
    elif 'Criterion_Type' in criterion:
      new_criterion = GetPyClass(criterion['Criterion_Type'], web_services)
    else:
      msg = 'The \'criterionType\' or \'type\' of the criterion is missing.'
      raise ValidationError(msg)
  elif operator in ('SET', 'REMOVE'):
    new_criterion = GetPyClass('Criterion', web_services)
  for key in criterion:
    if criterion[key] == 'None': continue
    glob_sanity_check.ValidateTypes(((criterion[key], (str, unicode)),))
    new_criterion.__dict__.__setitem__('_%s' % key, criterion[key])

  return new_criterion
Esempio n. 7
0
def ValidateDefinedReportJobV13(job, name_space):
  """Validate DefinedReportJob object.

  Args:
    job: dict report job object.
    name_space: str namespace to use for this ReportJob.

  Returns:
    instance untyped instance of ReportJob.
  """
  items = []
  for key in job:
    if (key == 'adWordsType' or key == 'crossClient' or key == 'endDay' or
        key == 'includeZeroImpression' or key == 'keywordType' or
        key == 'name' or key == 'selectedReportType' or key == 'startDay'):
      glob_sanity_check.ValidateTypes(((job[key], (str, unicode)),))
      items.append('<%s>%s</%s>' % (key, job[key], key))
    else:
      glob_sanity_check.ValidateTypes(((job[key], list),))
      for item in job[key]:
        glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
        items.append('<%s>%s</%s>' % (key, item, key))
  # Explicitly set job's namespace and type.
  job = UnType(''.join(items))
  job._setAttr('xmlns:impl', name_space)
  job._setAttr('xsi3:type', 'impl:DefinedReportJob')

  return job
Esempio n. 8
0
  def Upload(self, media):
    """Upload a list of media.

    Args:
      media: list media objects whose byte data should be uploaded.

    Returns:
      tuple uploaded media objects.
    """
    method_name = 'upload'
    if self.__config['soap_lib'] == SOAPPY:
      glob_sanity_check.ValidateTypes(((media, list),))
      new_media = []
      for item in media:
        self.__sanity_check.ValidateMedia(item)
        new_media.append(self.__message_handler.PackDictAsXml(
            item, 'media', []))
      media = ''.join(new_media)
      return self.__service.CallMethod(
          method_name.split(self.__class__.__name__.split('Service')[0])[0],
          (media))
    elif self.__config['soap_lib'] == ZSI:
      web_services = self.__web_services
      glob_sanity_check.ValidateTypes(((media, list),))
      new_media = []
      for item in media:
        new_media.append(self.__sanity_check.ValidateMedia(item, web_services))
      request = eval('web_services.%sRequest()' % method_name)
      return self.__service.CallMethod(method_name, (({'media': new_media},)),
                                       'Media', self.__loc, request)
Esempio n. 9
0
def ValidateOperationStream(stream, web_services):
  """Validate OperationStream object.

  Args:
    stream: dict OperationStream object.
    web_services: module for web services.

  Returns:
    OperationStream instance.
  """
  if IsPyClass(stream):
    return stream

  glob_sanity_check.ValidateTypes(((stream, dict),))
  new_stream = GetPyClass('OperationStream', web_services)
  for key in stream:
    if stream[key] == 'None': continue
    if key in ('operations',):
      glob_sanity_check.ValidateTypes(((stream[key], list),))
      ops = []
      for item in stream[key]:
        ops.append(ValidateJobOperation(item, web_services))
      data = ops
    elif key in ('scopingEntityId',):
      data = ValidateEntityId(stream[key], 'EntityId', web_services)
    else:
      glob_sanity_check.ValidateTypes(((stream[key], (str, unicode)),))
      data = stream[key]
    new_stream.__dict__.__setitem__('_%s' % key, data)

  return new_stream
Esempio n. 10
0
def ValidateDefinedReportJobV13(job, web_services):
  """Validate DefinedReportJob object.

  Args:
    job: dict DefinedReportJob object.
    web_services: module for web services.

  Returns:
    DefinedReportJob instance.
  """
  report_type = GetPyClass('DefinedReportJob', web_services)
  new_job = report_type()
  for key in job:
    if job[key] == 'None': continue
    if key in ('adGroups', 'adGroupStatuses', 'aggregationTypes', 'campaigns',
               'campaignStatuses', 'clientEmails', 'keywords',
               'keywordStatuses', 'selectedColumns'):
      glob_sanity_check.ValidateTypes(((job[key], list),))
      for item in job[key]:
        glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
    else:
      glob_sanity_check.ValidateTypes(((job[key], (str, unicode)),))
    new_job.__dict__.__setitem__('_%s' % key, job[key])

  return new_job
Esempio n. 11
0
def ValidateTemplateElementField(field, web_services):
  """Validate TemplateElementField object.

  Args:
    field: dict TemplateElementField object.
    web_services: module for web services.

  Returns:
    TemplateElementField instance.
  """
  if IsPyClass(field):
    return field

  glob_sanity_check.ValidateTypes(((field, dict),))
  new_field = GetPyClass('TemplateElementField', web_services)
  for key in field:
    if field[key] == 'None': continue
    if key in ('fieldMedia',):
      data = ValidateMedia(field[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((field[key], (str, unicode)),))
      data = field[key]
    new_field.__dict__.__setitem__('_%s' % key, data)

  return new_field
Esempio n. 12
0
def ValidateProximityTarget(target, web_services):
  """Validate ProximityTarget object.

  Args:
    target: dict ProximityTarget object.
    web_services: module for web services.

  Returns:
    ProximityTarget instance.
  """
  if IsPyClass(target):
    return target

  glob_sanity_check.ValidateTypes(((target, dict),))
  new_target = GetPyClass('ProximityTarget', web_services)
  for key in target:
    if target[key] == 'None': continue
    if key in ('geoPoint',):
      data = ValidateGeoPoint(target[key], web_services)
    elif key in ('address',):
      data = ValidateAddress(target[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((target[key], (str, unicode)),))
      data = target[key]
    new_target.__dict__.__setitem__('_%s' % key, data)

  return new_target
Esempio n. 13
0
def ValidateTemplateElement(element, web_services):
  """Validate TemplateElement object.

  Args:
    element: dict TemplateElement object.
    web_services: module for web services.

  Returns:
    TemplateElement instance.
  """
  if IsPyClass(element):
    return element

  glob_sanity_check.ValidateTypes(((element, dict),))
  new_element = GetPyClass('TemplateElement', web_services)
  for key in element:
    if element[key] == 'None': continue
    if key in ('fields',):
      glob_sanity_check.ValidateTypes(((element[key], list),))
      fields = []
      for item in element[key]:
        fields.append(ValidateTemplateElementField(item, web_services))
      data = fields
    else:
      glob_sanity_check.ValidateTypes(((element[key], (str, unicode)),))
      data = element[key]
    new_element.__dict__.__setitem__('_%s' % key, data)

  return new_element
Esempio n. 14
0
def ValidateMapEntry(entry, type, web_services):
  """Validate MapEntry object.

  MapEntry object is one of Media_MediaExtendedCapabilityType_Media_MediaExtendedCapabilityStateMapEntry,
  Media_Size, Media_Size_StringMapEntry, Type_AttributeMapEntry.

  Args:
    entry: dict MapEntry object.
    web_services: module for web services.

  Returns:
    XxxMapEntry instance.
  """
  if IsPyClass(entry):
    return entry

  glob_sanity_check.ValidateTypes(((entry, dict),))
  new_entry = GetPyClass(type, web_services)
  for key in entry:
    if entry[key] == 'None': continue
    if type in ('Media_Size_DimensionsMapEntry',) and key in ('value',):
      data = ValidateDimensions(entry[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((entry[key], (str, unicode)),))
      data = entry[key]
    new_entry.__dict__.__setitem__('_%s' % key, data)

  return new_entry
Esempio n. 15
0
def ValidateAd(operator, ad, web_services):
  """Validate Ad object.

  An Ad object is one of DeprecatedAd, MobileAd, MobileImageAd, ImageAd,
  LocalBusinessAd, TemplateAd, TextAd,

  Args:
    operator: str operator to use.
    ad: dict ad object.
    web_services: module for web services.

  Returns:
    dict/Ad updated ad object or Ad instance.
  """
  if IsPyClass(ad):
    return ad

  glob_sanity_check.ValidateTypes(((ad, dict),))
  if operator in ('ADD', ''):
    if 'adType' in ad:
      new_ad = GetPyClass(ad['adType'], web_services)
    elif 'type' in ad:
      new_ad = GetPyClass(ad['type'], web_services)
    elif 'Ad_Type' in ad:
      new_ad = GetPyClass(ad['Ad_Type'], web_services)
    else:
      msg = 'The \'adType\' or \'type\' of the ad is missing.'
      raise ValidationError(msg)
  elif operator in ('SET', 'REMOVE'):
    new_ad = GetPyClass('Ad', web_services)
  for key in ad:
    if ad[key] == 'None': continue
    if key in ('productImage', 'image', 'businessImage', 'customIcon', 'icon'):
      data = ValidateImage(ad[key], web_services)
    elif key in ('video',):
      data = ValidateVideo(ad[key], web_services)
    elif key in ('markupLanguages', 'mobileCarriers'):
      glob_sanity_check.ValidateTypes(((ad[key], list),))
      for item in ad[key]:
        glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
      data = ad[key]
    elif key in ('target',):
      data = ValidateProximityTarget(ad[key], web_services)
    elif key in ('adUnionId',):
      data = ValidateEntityId(ad[key], 'AdUnionId', web_services)
    elif key in ('templateElements',):
      glob_sanity_check.ValidateTypes(((ad[key], list),))
      elements = []
      for item in ad[key]:
        elements.append(ValidateTemplateElement(item, web_services))
      data = elements
    elif key in ('dimensions',):
      data = ValidateDimensions(ad[key], web_services)
    else:
      glob_sanity_check.ValidateTypes(((ad[key], (str, unicode)),))
      data = ad[key]
    new_ad.__dict__.__setitem__('_%s' % key, data)

  return new_ad
Esempio n. 16
0
def ValidateKeywordRequestV13(request):
  """Validate KeywordRequest object.

  Args:
    request: dict KeywordRequest object.
  """
  glob_sanity_check.ValidateTypes(((request, dict),))
  for key in request:
    glob_sanity_check.ValidateTypes(((request[key], (str, unicode)),))
Esempio n. 17
0
def ValidateBids(bids, web_services):
  """Validate Bids object.

  A Bids object is on of AdGroupBids, AdGroupCriterionBids,
  BudgetOptimizerAdGroupBids, BudgetOptimizerAdGroupCriterionBids,
  ConversionOptimizerAdGroupBids, ConversionOptimizerAdGroupCriterionBids,
  ManualCPCAdGroupBids, ManualCPCAdGroupCriterionBids, ManualCPMAdGroupBids,
  ManualCPMAdGroupCriterionBids, PositionPreferenceAdGroupCriterionBids.

  Args:
    bids: dict Bids object.
    web_services: module for web services.

  Returns:
    XxxBids instance.
  """
  if IsPyClass(bids):
    return bids

  glob_sanity_check.ValidateTypes(((bids, dict),))
  if 'type' in bids:
    new_bids = GetPyClass(bids['type'], web_services)
  elif 'AdGroupBids_Type' in bids:
    new_bids = GetPyClass(bids['AdGroupBids_Type'], web_services)
  elif 'AdGroupCriterionBids_Type' in bids:
    new_bids = GetPyClass(bids['AdGroupCriterionBids_Type'], web_services)
  else:
    msg = 'The \'type\' of the bid is missing.'
    raise ValidationError(msg)
  for key in bids:
    if bids[key] == 'None': continue
    if key in ('proxyBid', 'maxCpc', 'maxCpm', 'proxyMaxCpc',
               'proxyKeywordMaxCpc', 'proxySiteMaxCpc', 'targetCpa',
               'keywordMaxCpc', 'keywordContentMaxCpc', 'siteMaxCpc',
               'targetCpa'):
      data = ValidateBid(bids[key], web_services)
    elif key in ('positionPreferenceBids',):
      glob_sanity_check.ValidateTypes(((bids[key], dict),))
      new_bids = GetPyClass('PositionPreferenceAdGroupCriterionBids',
                            web_services)
      for sub_key in bids[key]:
        if sub_key in ('proxyMaxCpc',):
          data = ValidateBid(bids[key][sub_key], web_services)
        else:
          glob_sanity_check.ValidateTypes(((bids[key][sub_key],
                                            (str, unicode)),))
          data = bids[key][sub_key]
        new_bids.__dict__.__setitem__('_%s' % sub_key, data)
      data = new_bids
    else:
      glob_sanity_check.ValidateTypes(((bids[key], (str, unicode)),))
      data = bids[key]
    new_bids.__dict__.__setitem__('_%s' % key, data)

  return new_bids
Esempio n. 18
0
def ValidateAdGroupRequestV13(request):
  """Validate AdGroupRequest object.

  Args:
    request: dict AdGroupRequest object.
  """
  glob_sanity_check.ValidateTypes(((request, dict),))
  for key in request:
    if key in ('keywordRequests',):
      glob_sanity_check.ValidateTypes(((request[key], list),))
      for item in request[key]:
        ValidateKeywordRequestV13(item)
    else:
      glob_sanity_check.ValidateTypes(((request[key], (str, unicode)),))
Esempio n. 19
0
    def GetGzipReportDownloadUrl(self, report_job_id):
        """Return a URL for a compressed report.

    URL from which a compressed report with the given job ID can be downloaded
    (in Gzip format).

    Args:
      report_job_id: str ID of the report job.

        Ex:
          report_job_id = '1234567890'

    Returns:
      tuple response from the API method.
    """
        glob_sanity_check.ValidateTypes(((report_job_id, (str, unicode)), ))

        method_name = 'getGzipReportDownloadUrl'
        if self.__config['soap_lib'] == SOAPPY:
            report_job_id = self.__sanity_check.UnType(report_job_id)
            return self.__service.CallMethod(method_name, (report_job_id))
        elif self.__config['soap_lib'] == ZSI:
            web_services = self.__web_services
            request = eval('web_services.%sRequest()' % method_name)
            return self.__service.CallMethod(method_name,
                                             (({
                                                 'reportJobId': report_job_id
                                             }, )), 'Report', self.__loc,
                                             request)
Esempio n. 20
0
def ValidateKeywordRequestV13(request):
  """Validate KeywordRequest object.

  Args:
    request: dict keyword request.

  Returns:
    str keyword request converted into str type.
  """
  glob_sanity_check.ValidateTypes(((request, dict),))
  items = []
  for key in request:
    glob_sanity_check.ValidateTypes(((request[key], (str, unicode)),))
    items.append('<%s>%s</%s>' % (key, request[key], key))

  return ''.join(items)
Esempio n. 21
0
def ValidateNetworkTargetV13(network_target):
  """Validate NetworkTarget object.

  Args:
    network_target: list advertising networks targeted by this entity.

  Returns:
    str adertising networks converted into str type.
  """
  glob_sanity_check.ValidateTypes(((network_target, list),))
  items = []
  for item in network_target:
    glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
    items.append('<networkTypes>%s</networkTypes>' % item)

  return ''.join(items)
Esempio n. 22
0
def ValidateLanguageTargetV13(language_target):
  """Validate LanguageTarget object.

  Args:
    language_target: list languages targeted by this entity.

  Returns:
    str languages targeted converted into str type.
  """
  glob_sanity_check.ValidateTypes(((language_target, list),))
  items = []
  for item in language_target:
    glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
    items.append('<languages>%s</languages>' % item)

  return ''.join(items)
    def CheckKeywordTraffic(self, requests):
        """Check a batch of keywords to see whether they will get any traffic.

    Args:
      requests: list requests for keyword traffic checks.

        Ex:
          requests = [
            {
              'keywordText': 'Flowers',
              'keywordType': 'Broad',
              'language': 'en'
            }
          ]

    Returns:
      tuple response from the API method.
    """
        glob_sanity_check.ValidateTypes(((requests, list), ))
        for item in requests:
            self.__sanity_check.ValidateKeywordTrafficRequestV13(item)

        method_name = 'checkKeywordTraffic'
        if self.__config['soap_lib'] == SOAPPY:
            return self.__service.CallMethod(method_name, (requests))
        elif self.__config['soap_lib'] == ZSI:
            web_services = self.__web_services
            request = eval('web_services.%sRequest()' % method_name)
            return self.__service.CallMethod(method_name,
                                             (({
                                                 'requests': requests
                                             }, )), 'TrafficEstimator',
                                             self.__loc, request)
Esempio n. 24
0
def ValidateLanguageTargetV13(targets):
  """Validate LanguageTarget object.

  Args:
    targets: list LanguageTarget objects.

  Returns:
    list updated LanguageTarget objects.
  """
  glob_sanity_check.ValidateTypes(((targets, list),))
  languages = []
  for item in targets:
    glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
    languages.append({'languages': item})

  return languages
Esempio n. 25
0
def PackRequestAsComplexType(request, version):
    """Pack (recursively) a Python tuple object into a SOAP data holder.

   Args:
     request: instance of Python tuple object.
     version: str the API version being used.

  Returns:
    ZSI.TCcompound.ComplexType packed Python data.
  """
    if isinstance(request, dict):
        cpl = ZSI.TCcompound.ComplexType(ZSI.TCcompound.ComplexType, [])
        for key in request:
            value = request.get(key)
            data = PackRequestAsComplexType(value, version)
            if data and data != 'None':
                cpl.__dict__.__setitem__('_%s' % key, data)
        return cpl
    elif isinstance(request, list):
        if not SanityCheck.IsNewApi(version):
            request = CustomPackList(request)
        if isinstance(request, dict):
            return PackRequestAsComplexType(request, version)
        lst = []
        for item in request:
            data = PackRequestAsComplexType(item, version)
            lst.append(data)
        return lst
    elif isinstance(request, tuple):
        return request
    else:
        return request
    def GetReportFields(self, report_type):
        """Return a list of supported report fields.

    Args:
      report_type: str type of the report.

    Returns:
      tuple list of report fields.
    """
        glob_sanity_check.ValidateTypes(((report_type, str), ))

        method_name = 'getReportFields'
        if self.__config['soap_lib'] == SOAPPY:
            report_type = self.__message_handler.PackDictAsXml(
                report_type, 'reportType', [])
            return self.__service.CallMethod(
                method_name.split(
                    self.__class__.__name__.split('Service')[0])[0],
                (report_type))
        elif self.__config['soap_lib'] == ZSI:
            web_services = self.__web_services
            request = eval('web_services.%sRequest()' % method_name)
            return self.__service.CallMethod(method_name,
                                             (({
                                                 'reportType': report_type
                                             }, )), 'ReportDefinition',
                                             self.__loc, request)
Esempio n. 27
0
    def GetReportJobStatus(self, report_job_id):
        """Return the status of the report job with the given report job ID.

    Args:
      report_job_id: str ID of the report job.

        Ex:
          report_job_id = '1234567890'

    Returns:
      tuple response from the API method.
    """
        glob_sanity_check.ValidateTypes(((report_job_id, (str, unicode)), ))

        method_name = 'getReportJobStatus'
        if self.__config['soap_lib'] == SOAPPY:
            report_job_id = self.__sanity_check.UnType(report_job_id)
            return self.__service.CallMethod(method_name, (report_job_id))
        elif self.__config['soap_lib'] == ZSI:
            web_services = self.__web_services
            request = eval('web_services.%sRequest()' % method_name)
            return self.__service.CallMethod(method_name,
                                             (({
                                                 'reportJobId': report_job_id
                                             }, )), 'Report', self.__loc,
                                             request)
Esempio n. 28
0
def ValidateExemptionRequest(exemption):
  """Validate ExemptionRequest object.

  Args:
    exemption: dict ExemptionRequest object.
  """
  glob_sanity_check.ValidateTypes(((exemption, dict),))
  for key in exemption:
    if key in ('key',):
      glob_sanity_check.ValidateTypes(((exemption[key], dict),))
      for sub_key in exemption[key]:
        if (isinstance(exemption[key][sub_key], tuple) and
            not exemption[key][sub_key]):
          continue
        glob_sanity_check.ValidateTypes(((exemption[key][sub_key],
                                          (str, unicode)),))
Esempio n. 29
0
    def GetCampaignCriterionService(self,
                                    server='https://adwords.google.com',
                                    version=None,
                                    http_proxy=None):
        """Call API method in CampaignCriterionService.

    Args:
      [optional]
      server: str API server to access for this API call. Possible
              values are: 'https://adwords.google.com' for live site and
              'https://adwords-sandbox.google.com' for sandbox. The default
              behavior is to access live site.
      version: str API version to use.
      http_proxy: str HTTP proxy to use.

    Returns:
      CampaignCriterionService new instance of CampaignCriterionService object.
    """
        headers = self.__GetAuthCredentialsForAccessLevel()

        if version is None:
            version = MIN_API_VERSION
        if Utils.BoolTypeConvert(self.__config['use_strict']):
            SanityCheck.ValidateServer(server, version)

        # Load additional configuration data.
        op_config = {
            'server': server,
            'version': version,
            'group': 'cm',
            'http_proxy': http_proxy
        }

        return CampaignCriterionService(headers, self.__config, op_config,
                                        self.__lock, self.__logger)
Esempio n. 30
0
def ValidateNetworkTargetV13(targets):
  """Validate NetworkTarget object.

  Args:
    targets: list NetworkTarget objects.

  Returns:
    list updated NetworkTarget objects.
  """
  glob_sanity_check.ValidateTypes(((targets, list),))
  networks = []
  for item in targets:
    glob_sanity_check.ValidateTypes(((item, (str, unicode)),))
    networks.append({'networkTypes': item})

  return networks