diff options
Diffstat (limited to 'universe/ac_types')
26 files changed, 7957 insertions, 0 deletions
diff --git a/universe/ac_types/ac_types.py b/universe/ac_types/ac_types.py new file mode 100644 index 000000000000..8a3513c59798 --- /dev/null +++ b/universe/ac_types/ac_types.py @@ -0,0 +1,378 @@ +from itertools import product +import string +from pretty import pretty_print +import csv +import parse +import serialize +import dict +import scrape +import fs +import f +import log +import regex +import input_constant +from test_utils import simple_assert + +################################################################################ +# Main +################################################################################ +enable_tests = True + + +# parse_csv :: Path -> [RowAsDict] +def parse_csv(path): + parser = { + "Name": parse.required("Name", parse.identity), + "Type": parse.required("Type", parse.as_type), + # TODO: Are we sure we want to default to False here? + "Optional": parse.if_empty(False, parse.as_yes_no), + # We'd like to skip rows where "Data Source Type" is empty. + "Data Source Type": parse.nullable(parse.as_data_source_type), + "Data Source/Value": parse.nullable(parse.identity), + } + result = [] + # Below are only the column in which we're interested: + columns = [ + 'Name', + 'Type', + 'Optional', + 'Data Source Type', + 'Data Source/Value', + ] + assert set(columns) == set(parser.keys()) + with open(path, 'r') as f: + reader = csv.DictReader(f) + for row in reader: + try: + parsed = parse.apply_parser(parser, row) + result.append(dict.take(columns, parsed)) + except Exception as e: + pretty_print(row) + raise Exception('Failed parsing the following row: {}'.format( + ','.join(row.values()))) + return + + return result + + +def serialize_id_value(xs): + return string.indent('\n'.join([ + 'id: {}'.format(serialize.literal(xs['id'])), + 'value: {}'.format(serialize.literal(xs['value'])), + ])) + + +# serialize_parent_routing_frd :: RowAsDict -> [String] +def serialize_parent_routing_frd(row): + # All parent_routing_frds should be set as Hard-Code + assert row['Data Source Type'] == 'Hard-Code' + + frds = { + 'Consult Type': '^88149', + 'neoenum.program': '^87379', + 'form.country': '^16296', + 'Form.ad_language': "^3906" + } + name, value = row['Name'], parse.as_union_type(row['Data Source/Value']) + + result = [] + for x in value: + header = 'parent_lookup_frds {' + fields = serialize_id_value({'id': frds[name], 'value': x}) + footer = '}' + result.append('\n'.join([header, fields, footer])) + + return result + + +actual = serialize_parent_routing_frd({ + 'Name': + 'neoenum.program', + 'Data Source Type': + 'Hard-Code', + 'Data Source/Value': + '"olympus" or "olympus_plus"', +}) +expected = [ + """parent_lookup_frds { + id: "^87379" + value: "olympus" +}""", + """parent_lookup_frds { + id: "^87379" + value: "olympus_plus" +}""", +] +simple_assert(actual, expected, name='serialize_parent_routing_frd') + +actual = serialize_parent_routing_frd({ + 'Name': + 'Consult Type', + 'Type': + 'Parent Routing FRD', + 'AIV': + False, + 'Optional': + False, + 'Data Source Type': + 'Hard-Code', + 'Data Source/Value': + 'ads_accountappeals_autoconsult' +}) +expected = [ + """parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" +}""" +] +simple_assert(actual, expected, name='serialize_parent_routing_frd') + + +def serialize_return_routing_frd(row): + header = 'parent_return_routing_frds {' + fields = serialize_id_value({ + 'id': row['Name'], + 'value': row['Data Source/Value'], + }) + footer = '}' + return '\n'.join([header, fields, footer]) + + +def serialize_consult_routing_frd(row): + header = 'consult_routing_frds {' + fields = serialize_id_value({ + 'id': row['Name'], + 'value': row['Data Source/Value'], + }) + footer = '}' + return '\n'.join([header, fields, footer]) + + +# TODO: Reconcile this definition with serialize.input. +# serialize_inputs :: RowAsDict -> [String] +def serialize_input(row): + value_type = row['Data Source Type'] + name, value = string.trim_prefix('IDENTIFIER_', + row['Name']), row['Data Source/Value'] + + if ' or ' in value and value_type != 'Hard-Code': + log.warn('Found a union type in a non-"Hard-Code" row: {}'.format(row)) + + # TODO: We need to resolve row['Name'] into "^<id-number>". But only + # Sometimes... so... when is that sometimes? + if value_type == 'Hard-Code': + return serialize.input( + input_type='CONSTANT', + fields={ + 'consult_frd_id': name, + 'is_optional': row['Optional'], + # TODO: Call resolution function. + 'constant_value': input_constant.to_rule_id(value), + }) + elif value_type == 'Atlas': + # We need to remove the trailing parens if they exist. See the CSVs for more + # context. + value = regex.remove(r'\s\([\w\s]+\)$', value) + return serialize.input(input_type='SIGNAL', + fields={ + 'consult_frd_id': name, + 'is_optional': row['Optional'], + }) + elif value_type == 'Form': + # TODO: Prefer a generic serialize.dictionary + # We need to remove the trailing parens if they exist. See the CSVs for more + # context. + value = regex.remove(r'\s\([\w\s]+\)$', value) + return serialize.input(input_type='PARENT_FRD', + fields={ + 'consult_frd_id': + name, + 'is_optional': + row['Optional'], + 'parent_frd_id': + scrape.attribute_id_for( + value, error_when_absent=False), + }) + else: + raise Exception("This should not have occurred.") + + +# csv_to_proto :: Path -> [Protobuf] +def csv_to_proto(path): + """Maps the CSV located at `path` into a textproto that Auto Consult will consume.""" + # ORGANIZATION, which is currently a 'Consult Routing FRD' should become a + # 'Consult Parameter' as "neo_organization". + consult_routing_frds_blacklist = {'ORGANIZATION'} + index = { + 'Parent Routing FRD': [], + 'Consult Parameter': [], + 'Return Routing FRD': [], + 'Consult Routing FRD': [], + 'Input': [] + } + + # Index each row according to its "Type" column. + for row in parse_csv(path): + name, rtype, dst = row['Name'], row['Type'], row['Data Source Type'] + # Here we need to mutate the spreadsheet because the curators encoded a + # 'Consult Parameter', "ORGANIZATION", as a 'Consult Routing FRD'. + if name == 'ORGANIZATION' and rtype == 'Consult Routing FRD': + row['Type'] = 'Consult Parameter' + index['Consult Parameter'].append(row) + continue + if dst is None: + log.warn('Column "Data Source Type" is None. Skipping this row.') + continue + if dst == 'N/A': + continue + index[row['Type']].append(row) + + return serialize_index(index) + + +def serialize_consult_parameters(xs): + result = [] + transforms = { + 'Taxonomy ID': 'taxonomy_id', + 'View ID': 'view_id', + 'Timeout': 'max_wait_time_for_consult_secs', + 'Re-Route if Customer Responds': 'reroute_on_customer_interaction', + 'ORGANIZATION': 'neo_organization' + } + parsers = { + 'Taxonomy ID': + parse.identity, + 'View ID': + parse.identity, + 'Timeout': + lambda x: parse.as_hours(x) * 60 * 60, + 'Re-Route if Customer Responds': + parse.as_mapping({ + 'TRUE': True, + 'FALSE': False + }), + 'ORGANIZATION': + parse.identity + } + for row in xs: + name = row['Name'] + parser = parsers[name] + key, value = transforms[name], parser(row['Data Source/Value']) + result.append(' {}: {}'.format(key, serialize.literal(value))) + + return '\n'.join(result) + + +def serialize_index(index): + header = 'consult_settings {' + + consult_parameters = serialize_consult_parameters( + index['Consult Parameter']) + + product_xs = [] + parent_lookup_frds = [] + for row in index['Parent Routing FRD']: + product_xs.append(serialize_parent_routing_frd(row)) + for frds in product(*product_xs): + parent_lookup_frds.append('\n'.join(frds)) + + # TODO: Cover with tests. + parent_return_routing_frds = string.indent('\n'.join([ + serialize_return_routing_frd(row) + for row in index['Return Routing FRD'] + ])) + + # TODO: Cover with tests. + consult_routing_frds = string.indent('\n'.join([ + serialize_consult_routing_frd(row) + for row in index['Consult Routing FRD'] + ])) + + inputs = string.indent('\n'.join( + [serialize_input(row) for row in index['Input']])) + + footer = '}' + + result = [] + for parent_frd in parent_lookup_frds: + result.append('\n'.join([ + header, consult_parameters, + string.indent(parent_frd), parent_return_routing_frds, + consult_routing_frds, inputs, footer + ])) + + return '\n'.join(result) + + +csv_directory = f.ensure_absolute("~/auto-consult-csv") +# TODO: Add missing files. +csvs = [ + 'Non-Sensitive Ads Review (Olympus).csv', + 'Ads Review (Olympus).csv', + 'Ad Review (Non-Olympus).csv', + 'Review Account Under Review (Olympus).csv', + 'Accounts Review Requests (Non-Olympus).csv', + 'Review Suspended Account (Olympus).csv', + 'Review Suspended Account (Non-Olympus).csv', + 'Suspended Long Form (Olympus).csv', + 'Suspended Long Form (Non-Olympus).csv', + 'Copyright (Olympus).csv', + 'Copyright (Non-Olympus).csv', + 'EU Election Certification (Olympus).csv', + 'EU Election Certification #2 (Olympus).csv', + 'EU Election Certification (Non-Olympus).csv', + 'EU Election Certification #2 (Non-Olympus).csv', + 'US Election Certification (Olympus).csv', + 'US Election Certification (Non-Olympus).csv', + 'IN Election Certification (Olympus).csv', + 'IN Election Certification (Non-Olympus).csv', + 'NY Election Certification (Olympus).csv', + 'NY Election Certification (Non-Olympus).csv', + 'Ticket Seller Certification (Olympus).csv', + 'Ticket Seller Certification (Non-Olympus).csv', + 'Pharma Certification EMEA (Olympus).csv', + 'Pharma Certification EMEA (Non-Olympus).csv', + 'CSFP Certification (Olympus).csv', + 'CSFP Certification (Non-Olympus).csv', + 'Social Casino Games Certification (Olympus).csv', + 'Social Casino Games Certification (NonOlympus).csv', + 'Gambling Certification (Olympus).csv', + 'Gambling Certification (Non-Olympus).csv', + 'Addiction Services Certification (Olympus).csv', + 'Addiction Services Certification (Non-Olympus).csv', + 'HTML5 Application (Olympus).csv', + 'HTML5 Application (Non-Olympus).csv', + # TODO: Support this once Jason unblocks. + # 'Account Take Over (Olympus).csv', + # TODO: Support this once Jason unblocks. + # 'Account Take Over (Non-Olympus).csv', + 'Free Desktop Software Policy (Olympus).csv', + 'Free Desktop Software Policy (Non-Olympus).csv', + 'Untrustworthy Promotions (Olympus).csv', + 'Untrustworthy Promotions (Non-Olympus).csv', +] + +# TODO: Dump these CSVs into SQL to run basic queries on the " or " count, etc. +# Only 'Hard-Code' fields seem to have " or "s in them; SQL can help me verify +# this claim. + +for x in csvs: + print('# File: "{}"'.format(f.strip_extension(x))) + print(csv_to_proto(f.join(csv_directory, x))) + +################################################################################ +# Tests +################################################################################ +if enable_tests: + tests = [ + # 'EU Election Certification (Olympus).csv', + 'EU Election Certification (Non-Olympus).csv', + # 'Non-Sensitive Ads Review (Olympus).csv', + ] + for csv_file in tests: + textproto_file = f.join('expected', + f.change_extension('.textproto', csv_file)) + actual = csv_to_proto( + f.ensure_absolute(f.join(csv_directory, csv_file))) + expected = open(textproto_file, 'r').read() + simple_assert(actual, expected, name='csv_to_proto') diff --git a/universe/ac_types/attributes.pb b/universe/ac_types/attributes.pb new file mode 100644 index 000000000000..6b893647c7ba --- /dev/null +++ b/universe/ac_types/attributes.pb @@ -0,0 +1,1014 @@ +configs { + # System Attribute - Category + id: "^^1" + type: STRING + access_type: READ_WRITE +} +configs { + # System Attribute - Product + id: "^^11" + type: STRING + access_type: READ +} +configs { + # System Attribute - Customer Email + id: "^^3" + type: STRING + access_type: READ +} +configs { + # System Attribute - Adwords Customer ID + id: "^^30" + type: STRING + access_type: READ +} +configs { + # System Attribute - Customer Gaia ID + id: "^^4" + type: INT + access_type: READ +} +configs { + # System Attribute - Customer Name + id: "^^5" + type: STRING + access_type: READ +} +configs { + # System Attribute - Locale + id: "^^9" + type: STRING + access_type: READ +} +configs { + # System Attribute - Case Source + id: "^1006" + type: STRING + access_type: READ +} +configs { + # AR.Claim.KnowledgeTestClaimId + id: "^106464" + type: STRING + access_type: READ +} +configs { + # AR.Claim.IssueType + id: "^106466" + type: ENUM + access_type: READ +} +configs { + # AR.Claim.StrongAuthPhone + id: "^106474" + type: STRING + access_type: READ +} +configs { + # AR.Claim.IsStopMessageReceived + id: "^106482" + type: BOOL + access_type: READ +} +configs { + # Atlas.CustomerId + id: "^1421" + type: STRING + access_type: READ +} +configs { + # Form.form-id + id: "^4297" + type: STRING + access_type: READ +} +configs { + # Form.Ar_descr_textbox + id: "^6664" + type: STRING + access_type: READ +} +configs { + # AR.ART.LastDecisionRecommended + id: "^106918" + type: ENUM + access_type: WRITE +} +configs { + # AR.ART.LastDecisionTaken + id: "^106919" + type: ENUM + access_type: WRITE +} +configs { + # AR.ART.LastDecisionTime + id: "^106920" + type: STRING + access_type: WRITE +} +configs { + # AR.ART.LastDecisionType + id: "^106921" + type: ENUM + access_type: WRITE +} +configs { + # System Attribute - Resolution ID + id: "^22020" + type: STRING + access_type: WRITE +} +configs { + # b/134163005 - frd.quality_pre_check_state.core + id: "^83347" + type: STRING + access_type: READ_WRITE +} +configs { + # b/134168536 - PRIORITY + id: "^^10" + type: INT + access_type: READ +} +configs { + # b/134169885 - STO_InternalCategory + id: "^3618" + type: STRING + access_type: READ_WRITE +} +configs { + # b/134408264 - neo.notification_requested + id: "^84074" + type: STRING + access_type: READ_WRITE +} +configs { + # b/135613797 - Form.media_plan_ID + id: "^75926" + type: STRING + access_type: READ +} +configs { + # b/135613797 - Form.help_needed + id: "^80735" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.company_id + id: "^14773" + type: INT + access_type: READ +} +configs { + # b/135614853 - sales_task.TeamName + id: "^16367" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.VerticalName + id: "^16368" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.RegionName + id: "^16369" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.Sector + id: "^16372" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.SubSector + id: "^16373" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.parent_company_id + id: "^25555" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.service_channel + id: "^25557" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.company_name + id: "^26743" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.global_parent_company_id + id: "^29339" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.global_parent_company_name + id: "^29340" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.parent_company_name + id: "^29341" + type: STRING + access_type: READ +} +configs { + # b/135614853 - CaseCreator.Email + id: "^5709" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.product + id: "^68613" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.request_type + id: "^68616" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.workdriver + id: "^68617" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.campaign_type + id: "^68621" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.market + id: "^69794" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.interaction_type + id: "^69795" + type: STRING + access_type: READ +} +configs { + # b/135614853 - sales_task.chutney_key + id: "^70302" + type: STRING + access_type: READ +} +configs { + # b/135614853 - frd.case_source.core + id: "^76697" + type: STRING + access_type: READ +} +configs { + # b/135614853 - frd.google_ads_internal_customer_id.target + id: "^77629" + type: INT + access_type: READ +} +configs { + # b/135614853 - frd.google_ads_internal_customer_id.target_candidate + id: "^77634" + type: INT + access_type: READ +} +configs { + # b/135614853 - neo.Sales_Region + id: "^81664" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.source_mechanism + id: "^82204" + type: STRING + access_type: READ +} +configs { + # b/135614853 - neo.vertical + id: "^82589" + type: STRING + access_type: READ +} +configs { + # b/135943348 - IS_CONSULT + id: "^1224" + type: BOOL + access_type: READ +} +configs { + # b/135943691 - Form.ic_sto_priority + id: "^6078" + type: STRING + access_type: READ +} +configs { + # b/135943174 - neo.program + id: "^69798" + type: STRING + access_type: READ +} +configs { + # b/135942978 - Form.what_is_your_question_about + id: "^14511" + type: STRING + access_type: READ +} +configs { + # b/135942692 - sales_task.gt_priority + id: "^25484" + type: STRING + access_type: READ +} +configs { + # b/138591197 - Form.pii_status + id: "^30810" + type: STRING + access_type: READ +} +configs { + # b/138591197 - Form.pii_status - STAGING ATTRIBUTE + id: "^122997" + type: STRING + access_type: READ +} +configs { + # b/138590939 - Form.pii_AWID + id: "^30811" + type: STRING + access_type: READ +} +configs { + # b/138590939 - Form.pii_AWID - STAGING ATTRIBUTE + id: "^122998" + type: STRING + access_type: READ +} +configs { + # b/138590649 - Form.customerId + id: "^1658" + type: STRING + access_type: READ +} +configs { + # b/138592092 - Form.form + id: "^3664" + type: STRING + access_type: READ +} +configs { + # b/138592092 - Form.form - STAGING ATTRIBUTE + id: "^113826" + type: STRING + access_type: READ +} +configs { + # b/138591447 - Form.pubid + id: "^3693" + type: STRING + access_type: READ +} +configs { + # b/138591447 - Form.pubid - STAGING ATTRIBUTE + id: "^102721" + type: STRING + access_type: READ +} +configs { + # b/138590817 - Form.status + id: "^7502" + type: STRING + access_type: READ +} +configs { + # b/138590817 - Form.status - STAGING ATTRIBUTE + id: "^104111" + type: STRING + access_type: READ +} +configs { + # b/138811198 - sales_task.Country + id: "^16371" + type: STRING + access_type: READ +} +configs { + # b/138811198 - sales_task.country_code + id: "^25556" + type: STRING + access_type: READ +} +configs { + # b/138811198 - sales_task.client_business_objective + id: "^85372" + type: STRING + access_type: READ +} +configs { + # b/138811198 - sales_task.timeline_consideration + id: "^85375" + type: STRING + access_type: READ +} +configs { + # b/138843621 - Form.bse_priority_level + id: "^71223" + type: STRING + access_type: READ +} +configs { + # b/139361297 - Form.pub_id + id: "^4302" + type: STRING + access_type: READ +} +configs { + # b/139361297 - Form.admob_pubid + id: "^8472" + type: STRING + access_type: READ +} +configs { + # b/139361297 - Form.upload_document_id + id: "^7067" + type: STRING + access_type: READ +} +configs { + # b/139761352 - sales_task.assigned_to + id: "^73218" + type: STRING + access_type: READ +} +configs { + # b/140811258 - neo.source_context + id: "^83722" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.account_assigned_to_a_PTL + id: "^84587" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.account_id + id: "^2259" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Additional_Advertiser_ID_s + id: "^84575" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.additional_comments + id: "^3501" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.advertiser_name + id: "^4171" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.agency_id + id: "^76244" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Authorized_Buyers_customer_ID + id: "^87627" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.company_id + id: "^3416" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.company_name + id: "^3239" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Country_of_Support + id: "^84581" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Customer_Contact_Email + id: "^84577" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.customer_contact_name + id: "^7553" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Greentea_ID + id: "^86872" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.impact + id: "^68442" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.impact_type + id: "^16645" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Link_Partner_s + id: "^84589" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.network_id + id: "^2939" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Notification_Email + id: "^84582" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.partner_agency_name + id: "^86962" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.partner_id + id: "^2342" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Primary_Advertiser_ID_1 + id: "^86874" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Primary_Advertiser_ID + id: "^84591" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Primary_Product + id: "^84588" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Request_Type + id: "^4833" + type: STRING + access_type: READ +} +configs { + # b/141865219 - Form.Request_Sub_Type + id: "^84831" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Rquest_Sub_Type + id: "^84593" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.sector + id: "^18760" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.sub_sector + id: "^87768" + type: STRING + access_type: READ +} +configs { + # b/141027066 - Form.Work_doesnt_affect_Advertiser + id: "^84565" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.support_need + id: "^60520" + type: ENUM + access_type: READ +} +configs { + # b/142882516 - sales_task.campaign_name + id: "^25128" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.net_campaign_budget + id: "^25118" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.currency + id: "^25115" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.advertiser_market + id: "^81059" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.advertiser_market_cs + id: "^81091" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.country_cs + id: "^81090" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.campaign_start_date + id: "^25108" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.campaign_end_date + id: "^25114" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.potential_date + id: "^80985" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.date_flexible + id: "^80991" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.agency + id: "^25116" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.sales_poc + id: "^61764" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.external_poc + id: "^62583" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.dvip_status + id: "^80988" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.campaign_supported + id: "^81060" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.ad_platform + id: "^80983" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.video_format + id: "^80992" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.launched_before + id: "^80959" + type: STRING + access_type: READ +} +configs { + # b/142882516 - sales_task.request_details + id: "^25126" + type: STRING + access_type: READ +} +configs { + # b/142882516 - neo.component + id: "^68623" + type: STRING + access_type: READ +} +configs { + # b/142882516 - neoenum.gps_project_type + id: "^88941" + type: STRING + access_type: READ +} +configs { + # b/143390406 - neoenum.youtube_program_pitched + id: "^88894" + type: STRING + access_type: READ_WRITE +} +configs { + # b/143892899 - neo.organization + id: "^69793" + type: STRING + access_type: READ +} +configs { + # b/145022355 - LR_isFlagged + id: "^6736" + type: BOOL + access_type: READ +} +configs { + # b/145022355 - legal_AbuseCategory + id: "^3614" + type: ENUM + access_type: READ +} +configs { + # b/145022355 - legal_HiddenProduct + id: "^3615" + type: ENUM + access_type: READ +} +configs { + # b/145022355 - CountryIsoAlpha2 + id: "^3497" + type: ENUM + access_type: READ +} +configs { + # b/145022355 - legal_ChillingId + id: "^3616" + type: STRING + access_type: READ +} +configs { + # b/145022355 - LegalRemovals_SESTA + id: "^71537" + type: BOOL + access_type: READ +} +configs { + # b/145707965 - sales_task.accounts_field2 + id: "^80051" + type: STRING + access_type: READ +} +configs { + # b/145707965 - sales_task.cid_rollup + id: "^80052" + type: STRING + access_type: READ +} +configs { + # b/145707965 - sales_task.proposed_company_id + id: "^62779" + type: STRING + access_type: READ +} +configs { + # b/146005429 - Form.geolocation + id: "^3328" + type: STRING + access_type: READ +} +configs { + # b/146066105 - Form.url_box3 + id: "^5653" + type: STRING + access_type: READ +} +configs { + # b/146066105 - Form.full_name + id: "^2981" + type: STRING + access_type: READ +} +configs { + # b/146066105 - Form.signature + id: "^3483" + type: STRING + access_type: READ +} +configs { + # b/146060287 - Form.publisher_code + id: "^86622" + type: STRING + access_type: READ +} +configs { + # b/146445306 - neoenum.consult_type + id: "^88149" + type: STRING + access_type: READ +} +configs { + # b/146445306 - neoenum.program + id: "^87379" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.ad_language + id: "^3906" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.summary_of_issue + id: "^5305" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Atlas.AbuseTagIds + id: "^2356" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.website_req + id: "^1677" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.who_pays + id: "^14657" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.sample_keywords + id: "^1881" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.billing_address_street + id: "^1880" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.billing_address_town + id: "^1879" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.billing_address_zip + id: "^1885" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.billing_country_req + id: "^1886" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.business_desc + id: "^14660" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.owner_or_emp + id: "^14661" + type: STRING + access_type: READ +} +configs { + # b/146445306 - Form.payment_option + id: "^1882" + type: STRING + access_type: READ +} +configs { + # b/146445306 - ChatForm.phone_number + id: "^30248" + type: STRING + access_type: READ +} +configs { + # b/146445306 - pool + id: "^^35" + type: STRING + access_type: READ +} +configs { + # b/146649910 - neoenum.product + id: "^87422" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.requested_quarter + id: "^77809" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.proposed_company_name + id: "^62778" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.company_name_pdc_copy + id: "^80083" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.company_currently_exists + id: "^75285" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.parent_or_division + id: "^76645" + type: STRING + access_type: READ +} +configs { + # b/146347546 - sales_task.proposed_company_website + id: "^76644" + type: STRING + access_type: READ +} \ No newline at end of file diff --git a/universe/ac_types/dict.py b/universe/ac_types/dict.py new file mode 100644 index 000000000000..9975ec8a970f --- /dev/null +++ b/universe/ac_types/dict.py @@ -0,0 +1,10 @@ +# Naming options for this module: +# - map (like Elixir and standard.el): Overwrites python's built-in `map` function. +# - dict: Overwrites python's built-in `dict` function. + + +def take(ks, xs): + result = {} + for k in ks: + result[k] = xs[k] + return result diff --git a/universe/ac_types/example.textproto b/universe/ac_types/example.textproto new file mode 100644 index 000000000000..987c45f78f7e --- /dev/null +++ b/universe/ac_types/example.textproto @@ -0,0 +1,523 @@ +# Please, see the link below for the definition of the messages in this file. +# https://cs.corp.google.com/piper///depot/google3/google/internal/alkali/applications/casesconsultservice/v1/consult.proto + +# Instances of ConsultMetadata message. + +## The following ConsultMetadata instance is just an example. +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + # Instances of Attribute message. + id: "^^11" # Attribute name: PRODUCT. + value: "ac-demo-value1" + } + parent_lookup_frds { + id: "^^1" # Attribute name: CATEGORY. + value: "ac-demo-value2" + } + parent_return_routing_frds { + # Instances of Attribute message. + id: "^123" # Attribute name: XYZ. + value: "sample 1" + } + consult_routing_frds { + # Instances of Attribute message. + id: "^987" # Attribute name: Demo. + value: "sample 2" + } + inputs { + # Instance of ConsultInput + type: CONSTANT + consult_frd_id: "^0123" + is_optional: true + constant_value: "This is an input" + } + inputs { + type: SIGNAL + consult_frd_id: "^9876" + is_optional: false + signal_type: CID + } +} + +# Note the following test case must be modeled with a LACK of configuration +# * AC-004: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=5:5 +# As such, it's imperative that all "autoconsult_test" fixtures also match a language +# This test will be performed by specifying a language that's not covered in this configuration + +# General Success Case - consults to T&S robot test pool +# Supports Test Cases: +# * AC-001: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=2:2 +# * AC-003: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=4:4 +consult_settings { + taxonomy_id: "9249441" # T&S Taxonomy: http://composer/9249441 + view_id: "Routing" + neo_organization: "trust_safety" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "af" # Afrikaans + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" # FRD Name: Product Group + value: "engineering" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: true + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: true + parent_frd_id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + } + inputs { + type: CONSTANT + consult_frd_id: "COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} + +# General success case - consults to TDA manual test pool +# Defines a non-optional input that will be Empty +# Supports Test Cases: +# * AC-002: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=3:3 +# * AC-008: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=9:9 +# * AC-015: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=16:16 +# * AC-016: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=17:17 +# * AC-017: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=18:18 +# * AC-018: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=19:19 +# * AC-019: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=20:20 +# * AC-020: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=21:21 +# * AC-021: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=22:22 +# * AC-022: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=23:23 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "da" # dansk + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: true + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# This tests a misconfigured signal type +# Supports Test Cases: +# * AC-005: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=6:6 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-AU" # English (Australia) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: UNKNOWN + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: true + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Defines a non-optional input that will be missing +# Supports Test Cases: +# * AC-006: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=7:7 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-CA" # English (Canada) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^999999" # Made-up attribute ID + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Defines a non-optional input that will be empty +# Supports Test Cases: +# * AC-008: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=9:9 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-GB" # English (United Kingdom) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false # Not optional + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Defines a non-optional input that will be missing +# Supports Test Cases: +# * AC-009: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=10:10 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en" # English + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false # Not optional + parent_frd_id: "^999999" # Made-up attribute ID + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Defines multiple non-optional inputs that will not validate +# Supports Test Cases: +# * AC-011: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=12:12 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 3600 # 1 hr + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-IN" # English (India) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false # Not optional + parent_frd_id: "^999999" # Made-up attribute ID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false # Not optional + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Long Timeout Fixture +# Re-Route On Customer Interaction set at this level +# Supports Test Cases: +# * AC-013: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=14:14 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 36000 # 10 hrs + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-NZ" # English (New Zealand) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: true + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} + +# Zero Timeout Fixture +# Supports Test Cases: +# * AC-014: https://docs.google.com/spreadsheets/d/1yec_SVbkGL3vHegNkqFweF-Ea8YaFczeZYuhXChavJM/edit#gid=505426631&range=15:15 +consult_settings { + taxonomy_id: "9126664" # Ads Taxonomy: http://composer/9126664 + view_id: "Routing" + neo_organization: "gcc" + max_wait_time_for_consult_secs: 0 # 0 hrs + reroute_on_customer_interaction: false + parent_lookup_frds { + id: "^88149" # Attribute name: neoenum.consult_type https://cases.corp.google.com/Client.html#A~%5E88149 + value: "autoconsult_test" + } + parent_lookup_frds { + id: "^3906" # Form.ad_language https://cases.corp.google.com/Client.html#A~%5E3906 + value: "en-NZ" # English (New Zealand) + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + consult_routing_frds { + id: "CONSULT_TYPE" # FRD Name: Consult Type + value: "autoconsult_test" + } + consult_routing_frds { + id: "ROBOT_WORKFLOW_STATE" # FRD Name: Robot Workflow State. + value: "automation_escalate" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: true + parent_frd_id: "^5305" # Form.summary_of_issue https://cases.corp.google.com/Client.html#A~%5E5305 + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } +} \ No newline at end of file diff --git a/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto b/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto new file mode 100644 index 000000000000..5ebfebb6783d --- /dev/null +++ b/universe/ac_types/expected/EU Election Certification (Non-Olympus).textproto @@ -0,0 +1,255 @@ +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + value: "Germany" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + value: "Netherlands" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + value: "Spain" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + value: "Check Republic" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + value: "United Kingdom" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} diff --git a/universe/ac_types/expected/EU Election Certification (Olympus).textproto b/universe/ac_types/expected/EU Election Certification (Olympus).textproto new file mode 100644 index 000000000000..8650de0d5e88 --- /dev/null +++ b/universe/ac_types/expected/EU Election Certification (Olympus).textproto @@ -0,0 +1,550 @@ +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: CID + } +} \ No newline at end of file diff --git a/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto b/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto new file mode 100644 index 000000000000..5ff397946bec --- /dev/null +++ b/universe/ac_types/expected/Non-Sensitive Ads Review (Olympus).textproto @@ -0,0 +1,126 @@ +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: "9249441" + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + neo_organization: "trust_safety" + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: CID + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} \ No newline at end of file diff --git a/universe/ac_types/f.py b/universe/ac_types/f.py new file mode 100644 index 000000000000..44dcf0d32bf7 --- /dev/null +++ b/universe/ac_types/f.py @@ -0,0 +1,46 @@ +import os +import string +from test_utils import simple_assert + + +def join(*args): + return os.path.join(*args) + + +simple_assert(join("/", "tmp", "a.txt"), "/tmp/a.txt", name="join") + + +def ensure_absolute(path): + """Ensures `path` is an absolute path.""" + return os.path.abspath(os.path.expanduser(path)) + + +simple_assert(ensure_absolute("~/a.txt"), + "/usr/local/google/home/wpcarro/a.txt", + name="ensure_absolute") + + +def filename(path): + """Return just the filename of `path`.""" + return os.path.basename(path) + + +simple_assert(filename("~/a.txt"), "a.txt", name="filename") +simple_assert(filename("/path/to/file"), "file", name="filename") + + +def strip_extension(path): + """Remove file extension from path.""" + return os.path.splitext(path)[0] + + +simple_assert(strip_extension("~/a.txt"), "~/a", name="filename") +simple_assert(strip_extension("/path/to/file.txt"), + "/path/to/file", + name="strip_extension") + + +def change_extension(ext, path): + """Change `path`'s file extension to `ext`.""" + assert string.starts_with('.', ext) + return strip_extension(path) + ext diff --git a/universe/ac_types/fs.py b/universe/ac_types/fs.py new file mode 100644 index 000000000000..68b34b64bffe --- /dev/null +++ b/universe/ac_types/fs.py @@ -0,0 +1,9 @@ +from glob import glob +import f + + +def ls(pattern): + """Return a list of files that match `pattern`. This is a DWIM function and + will handle relative paths, absolute paths, etc. It should behave + approximately similarly to GNU's ls.""" + return glob(f.ensure_absolute(pattern)) diff --git a/universe/ac_types/input_constant.py b/universe/ac_types/input_constant.py new file mode 100644 index 000000000000..9b32a3b493be --- /dev/null +++ b/universe/ac_types/input_constant.py @@ -0,0 +1,78 @@ +from test_utils import simple_assert + + +def to_rule_id(x): + """Transform `x` to the casing expected in a rule ID.""" + return x.lower().replace(' ', + '_').replace('(', + '').replace(')', + '').replace('/', '_') + + +expected = { + 'Cloaking or Cloaking Suspect': 'cloaking_or_cloaking_suspect', + 'Phishing': 'phishing', + 'System Suspended Advertiser': 'system_suspended_advertiser', + 'Affiliate Spam': 'affiliate_spam', + 'Untrustworthy Behavior': 'untrustworthy_behavior', + 'Payment Fraud': 'payment_fraud', + 'Bad Debt': 'bad_debt', + 'Sleeper': 'sleeper', + 'Gaming': 'gaming', + 'Counterfeit': 'counterfeit', + 'Coupon Abuse': 'coupon_abuse', + 'Fraud chargeback': 'fraud_chargeback', + 'Friendly chargeback': 'friendly_chargeback', + 'Customer service chargeback': 'customer_service_chargeback', + 'Delinquency (wont pay)': 'delinquency_wont_pay', + 'Direct Debit Abuse/Suspect': 'direct_debit_abuse_suspect', + 'Delinquent Account Abuse': 'delinquent_account_abuse', + 'Billing Customer Shutdown': 'billing_customer_shutdown', + 'Violations Across Multiple Accounts(VAMA)': + 'violations_across_multiple_accountsvama', + 'Risk Mitigation Daily Spend Limit Raise': + 'risk_mitigation_daily_spend_limit_raise', + 'Review Account Under Review': 'review_account_under_review', + 'Runaway Spenders Daily Spend Limit': 'runaway_spenders_daily_spend_limit', + 'Double Serving': 'double_serving', + 'Gaining an Unfair Advantage': 'gaining_an_unfair_advantage', + 'Office of Foreign Assets Control (OFAC) Sanctions': + 'office_of_foreign_assets_control_ofac_sanctions', + 'Terms of service violation': 'terms_of_service_violation', + 'Spam': 'spam', + 'Sexually Explicit Content': 'sexually_explicit_content', + 'Illegal drugs (Dangerous Products)': 'illegal_drugs_dangerous_products', + 'Hate speech': 'hate_speech', + 'Harrassment': 'harrassment', + 'Malicious Or Unwanted Software': 'malicious_or_unwanted_software', + 'Online Gambling': 'online_gambling', + 'Social Casino Games': 'social_casino_games', + 'Online Pharmacy Certification Required': + 'online_pharmacy_certification_required', + 'Copyrights': 'copyrights', + 'Addiction Services': 'addiction_services', + 'Elections': 'elections', + 'Unwanted Software': 'unwanted_software', + 'Event Ticket Reseller': 'event_ticket_reseller', + 'Cryptocurrency': 'cryptocurrency', + 'Complex Speculative Financial Policy': + 'complex_speculative_financial_policy', + 'US Elections Ads (New York Only)': 'us_elections_ads_new_york_only', + 'Alcohol Information': 'alcohol_information', + 'Inappropriate Content': 'inappropriate_content', + 'Adult Content': 'adult_content', + 'final reason blogger suspension': 'final_reason_blogger_suspension', + 'final reason calendar suspension': 'final_reason_calendar_suspension', + 'final reason writely suspension': 'final_reason_writely_suspension', + 'final reason groups reloaded suspension': + 'final_reason_groups_reloaded_suspension', + 'final reason gplus suspension': 'final_reason_gplus_suspension', + 'Terrorist Content': 'terrorist_content', + 'Underage account': 'underage_account', + 'Terrorist Content': 'terrorist_content', + 'Elections': 'elections', + 'Policy System Suspension': 'policy_system_suspension', +} + +for x, y in expected.items(): + simple_assert(to_rule_id(x), y, 'to_rule_id') diff --git a/universe/ac_types/log.py b/universe/ac_types/log.py new file mode 100644 index 000000000000..797e2f719942 --- /dev/null +++ b/universe/ac_types/log.py @@ -0,0 +1,9 @@ +enable = False + + +def warn(x): + """Print `x` as a warning.""" + if enable: + print('[Warning]: {}'.format(x)) + else: + return None diff --git a/universe/ac_types/notes_with_jason.txt b/universe/ac_types/notes_with_jason.txt new file mode 100644 index 000000000000..5c2972ee579f --- /dev/null +++ b/universe/ac_types/notes_with_jason.txt @@ -0,0 +1,60 @@ +# TODO: Handle Cartesian product for each "or" in row["Data Source/Value"] + +# Notes from Jason: +# Type +# - Require ID +# - Parent Routing FRD +# - Consult Input +# - Raw +# - everything else... +# +# Hard-Code: CONSTANT...constant_value +# +# Atlas.CustomerID == SIGNAL +# all else (!Hard-Code && !Atlas.CustomerID): Parent FRD + + +consult_settings { + # Consult Parameter + taxonomy_id: # (row['Name'] == 'Taxonomy ID') row['Data Source/Value'] + view_id: # (row['Name'] == 'View ID') row['Data Source/Value'] + neo_organization: # (row['Name'] == 'ORGANIZATION') row['Data Source/Value'] + max_wait_time_for_consult_secs: # (row['Name'] == 'Timeout') hours_to_seconds(as_hours(row['Data Source/Value'])) + reroute_on_customer_interaction: # (row['Name'] == 'Re-Route if Customer Responds') as_yes_no(row['Data Source/Value']) + + # Parent Routing FRD + rows + |> filter(row['Type'] == 'Parent Routing FRD') + |> map((row) => parent_lookup_frds { + id: ??? # as_id(row['Name']) + value: ??? row['Data Source/Value'] + }) + + # Consult Routing FRD + rows + |> filter(row['Type'] == 'Consult Routing FRD') + |> map((row) => consult_routing_frds { + id: row['Name'] + value: row['Data Source/Value'] + }) + + # Return Routing FRD + rows + |> filter(row['Type'] == 'Return Routing FRD') + |> map((row) => parent_return_routing_frds { + id: ??? + value: ??? + }) + + # Input (Note: There seem to be more than one variant of these) + rows + |> filter(row['Type'] == 'Input') + |> map((row) => inputs { + constant_value: ??? + consult_frd_id: ??? + is_optional: ??? + parent_frd_id: ??? + signal_type: ??? + type: ??? + }) +} diff --git a/universe/ac_types/output.textproto b/universe/ac_types/output.textproto new file mode 100644 index 000000000000..de2cce77ca71 --- /dev/null +++ b/universe/ac_types/output.textproto @@ -0,0 +1,4483 @@ +# File: "Non-Sensitive Ads Review (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +# File: "Ads Review (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 43200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +# File: "Ad Review (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_Adsreview" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ad_review_request_autoconsult" + } + + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "ads_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "unreviewed_ads_keywords_and_extensions" + } + inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" + } + inputs { + type: PARENT_FRD + consult_frd_id: "BUSINESS_LANGUAGE" + is_optional: false + parent_frd_id: "^3906" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +# File: "Review Account Under Review (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "review_account_under_review" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "review_account_under_review" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +# File: "Accounts Review Requests (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: PARENT_FRD + consult_frd_id: "ISSUE_DESCRIPTION" + is_optional: false + parent_frd_id: "^2941" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +# File: "Review Suspended Account (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "rereview_suspended_account" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "rereview_suspended_account" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +# File: "Review Suspended Account (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "rereview_suspended_account" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "POLICY" + is_optional: false + signal_type: "^2356" + } +} +# File: "Suspended Long Form (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +# File: "Suspended Long Form (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +# File: "Copyright (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "POLICY" + is_optional: false + constant_value: "copyrights" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "POLICY" + is_optional: false + constant_value: "copyrights" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +# File: "Copyright (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + inputs { + type: CONSTANT + consult_frd_id: "REQUEST" + is_optional: false + constant_value: "certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "POLICY" + is_optional: false + constant_value: "copyrights" + } + inputs { + type: CONSTANT + consult_frd_id: "INDENTIFIER_COMPLEXITY" + is_optional: false + constant_value: "easy" + } +} +# File: "EU Election Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "EU Election Certification #2 (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "hard" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "hard" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "EU Election Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: ""Germany" or "Netherlands" or "Spain" or "Check Republic" or "United Kingdom" # TODO(wpcarro): scrape.attribute_id_for could not find the ID." + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "EU Election Certification #2 (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "US Election Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "US Election Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +# File: "IN Election Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "Neo.country" + is_optional: false + constant_value: "india" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "Neo.country" + is_optional: false + constant_value: "india" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +# File: "IN Election Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "Neo.country" + is_optional: false + constant_value: "india" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +# File: "NY Election Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "us_election_ads_new_york_only" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.product" + is_optional: false + constant_value: "google_ads" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "us_election_ads_new_york_only" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.product" + is_optional: false + constant_value: "google_ads" + } +} +# File: "NY Election Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "us_election_ads_new_york_only" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.country" + is_optional: false + constant_value: "united_states_of_america" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +# File: "Ticket Seller Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "event_ticket_reseller" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "event_ticket_reseller" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Ticket Seller Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "event_ticket_reseller" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Pharma Certification EMEA (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_pharmacy_certification_required" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_pharmacy_certification_required" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +# File: "Pharma Certification EMEA (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_pharmacy_certification_required" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } +} +# File: "CSFP Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "complex_speculative_financial_policy" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "complex_speculative_financial_policy" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "CSFP Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "complex_speculative_financial_policy" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Social Casino Games Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "social_casino_games" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "social_casino_games" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Social Casino Games Certification (NonOlympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "social_casino_games" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Gambling Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_gambling" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_gambling" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Gambling Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "online_gambling" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Addiction Services Certification (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "addiction_services" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "addiction_services" + } +} +# File: "Addiction Services Certification (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "addiction_services" + } +} +# File: "HTML5 Application (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_HTML5_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.request" + is_optional: false + constant_value: "whitelisting" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.component" + is_optional: false + constant_value: "html5_ads" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_HTML5_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.request" + is_optional: false + constant_value: "whitelisting" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.component" + is_optional: false + constant_value: "html5_ads" + } +} +# File: "HTML5 Application (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_HTML5_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.request" + is_optional: false + constant_value: "whitelisting" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.component" + is_optional: false + constant_value: "html5_ads" + } +} +# File: "Free Desktop Software Policy (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "unwanted_software" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "unwanted_software" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Free Desktop Software Policy (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 259200 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "unwanted_software" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } +} +# File: "Untrustworthy Promotions (Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "GOOGLE_ADS_INTERNAL_CUSTOMER_ID" + is_optional: false + signal_type: "^1421" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +# File: "Untrustworthy Promotions (Non-Olympus)" +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_accountappeals" + max_wait_time_for_consult_secs: 172800 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_accountappeals_autoconsult" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "accounts_review" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.policy" + is_optional: false + signal_type: "^2356" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.website_req" + is_optional: false + parent_frd_id: "^1677" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.who_pays" + is_optional: false + parent_frd_id: "^14657" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.summary_of_issue" + is_optional: false + parent_frd_id: "^5305" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.sample_keywords" + is_optional: false + parent_frd_id: "^1881" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_street" + is_optional: false + parent_frd_id: "^1880" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_town" + is_optional: false + parent_frd_id: "^1879" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_address_zip" + is_optional: false + parent_frd_id: "^1885" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.billing_country_req" + is_optional: false + parent_frd_id: "^1886" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.business_desc" + is_optional: false + parent_frd_id: "^14660" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.countries_business_serve" + is_optional: false + parent_frd_id: "^14659" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.name" + is_optional: false + parent_frd_id: "^1665" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.owner_or_emp" + is_optional: false + parent_frd_id: "^14661" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.payment_option" + is_optional: false + parent_frd_id: "^1882" + } + inputs { + type: PARENT_FRD + consult_frd_id: "Form.phone_number" + is_optional: false + parent_frd_id: "^30248" + } +} +################################################################# +# csv_to_proto: Test failure. +################################################################# +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Germany" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Netherlands" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Spain" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "Check Republic" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} +consult_settings { + taxonomy_id: 9249441 + view_id: "Routing - Ads_certs" + max_wait_time_for_consult_secs: 86400 + reroute_on_customer_interaction: true + parent_lookup_frds { + id: "^88149" + value: "ads_certs_autoconsult" + } + parent_lookup_frds { + id: "^87379" + value: "olympus_plus" + } + parent_lookup_frds { + id: "^16296" + value: "United Kingdom" + } + parent_return_routing_frds { + id: "ROBOT_WORKFLOW_STATE" + value: "automation_escalate" + } + consult_routing_frds { + id: "ORGANIZATION" + value: "trust_safety" + } + consult_routing_frds { + id: "VERTICAL" + value: "ads" + } + consult_routing_frds { + id: "REQUEST_TYPE" + value: "Certifications" + } + inputs { + type: PARENT_FRD + consult_frd_id: "neo.country" + is_optional: false + parent_frd_id: "^16296" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.policy" + is_optional: false + constant_value: "elections" + } + inputs { + type: CONSTANT + consult_frd_id: "neo.complexity" + is_optional: false + constant_value: "easy" + } + inputs { + type: SIGNAL + consult_frd_id: "neo.product" + is_optional: false + signal_type: "^68613" + } +} diff --git a/universe/ac_types/parse.py b/universe/ac_types/parse.py new file mode 100644 index 000000000000..872f3f0c3fcc --- /dev/null +++ b/universe/ac_types/parse.py @@ -0,0 +1,138 @@ +import re +import string +from test_utils import simple_assert + + +def if_empty(x, parser): + """If the field is empty, use `x`, otherwise, call `parser` on it.""" + def fn(y): + if y == "": + return x + else: + return parser(y) + + return fn + + +# nullable :: Parser -> Parser +def nullable(parser): + def fn(x): + if x == "": + return None + else: + return parser(x) + + return fn + + +def required(column_name, parser): + def fn(x): + if x == "": + raise Exception( + "\"{}\" is a required field and cannot be empty".format( + column_name)) + else: + return parser(x) + + return fn + + +def apply_parser(parser, row): + """Calls each value in `parser` on the corresponding field in the + dictionary, `row`.""" + result = {} + for k, fn in parser.items(): + result[k] = fn(row[k]) + return result + + +def raise_parse_error(x, expected): + """Raises a generic `Exception` when `x` is not a member of the `expected` + set.""" + raise Exception("\"{}\" is none of the following: \"{}\"".format( + x, ", ".join(expected))) + + +def as_hours(x): + match = re.search(r'(\d+) hours', x) + if match: + try: + return int(match[1]) + except: + raise Exception('Failed to parse {} as an int'.format(match[1])) + else: + raise Exception('Failed to parse {} as hours'.format(x)) + + +actual = as_hours('24 hours') +expected = 24 +simple_assert(actual, expected, name='as_hours') + + +def as_mapping(mapping): + def fn(x): + if mapping[x]: + return mapping[x] + else: + raise_parse_error(x, set(mapping.keys())) + + return fn + + +# as_yes_no :: String -> Boolean +def as_yes_no(x): + """Attempt to parse `x`, a Yes or No value, into a boolean.""" + if x == "Yes": + return True + elif x == "No": + return False + else: + raise_parse_error(x, {"Yes", "No"}) + + +# as_data_source_type :: String -> String +def as_data_source_type(x): + """Attempt to parse `x` as the Data Source Type column, which is an enum + defined in the go/consult-types-authwf-auto-consult sheet.""" + acceptable = {"Hard-Code", "N/A", "Atlas", "Form"} + if x not in acceptable: + raise_parse_error(x, acceptable) + return x + + +# as_type :: String -> String +def as_type(x): + """Attempt to parse `x` as the Type column, which is an enum defined in the + go/consult-types-authwf-auto-consult sheet.""" + acceptable = { + "Parent Routing FRD", "Consult Parameter", "Consult Routing FRD", + "Input", "Return Routing FRD" + } + if x not in acceptable: + raise_parse_error(x, acceptable) + return x + + +def as_int(x): + return int(x) + + +def as_union_type(x): + if " or " in x: + return [string.trim_surrounding('"', x) for x in x.split(" or ")] + else: + return [x] + + +simple_assert(as_union_type('Non-Union'), ['Non-Union'], name='as_union_type') + +simple_assert(as_union_type( + '"Germany" or "Netherlands" or "Spain" or "Check Republic" or "United Kingdom"' +), ['Germany', 'Netherlands', 'Spain', 'Check Republic', 'United Kingdom'], + name='as_union_type') + + +# identity :: a -> a +def identity(x): + """Returns `x` unchanged.""" + return x diff --git a/universe/ac_types/parse.pyc b/universe/ac_types/parse.pyc new file mode 100644 index 000000000000..b1be813ba770 --- /dev/null +++ b/universe/ac_types/parse.pyc Binary files differdiff --git a/universe/ac_types/prelude.py b/universe/ac_types/prelude.py new file mode 100644 index 000000000000..21a809288fd8 --- /dev/null +++ b/universe/ac_types/prelude.py @@ -0,0 +1,19 @@ +from test_utils import simple_assert + + +def pipe(x, fns): + """Apply `x` to the first function in `fns` and then use its output as the + input for the next function in the list.""" + result = x + for f in fns: + result = f(result) + return result + + +actual = pipe(10, [ + lambda x: x + 3, + lambda x: x - 1, + lambda x: x * 2, +]) +expected = (((10 + 3) - 1) * 2) +simple_assert(actual, expected, name="pipe") diff --git a/universe/ac_types/pretty.py b/universe/ac_types/pretty.py new file mode 100644 index 000000000000..ac1f7203187b --- /dev/null +++ b/universe/ac_types/pretty.py @@ -0,0 +1,7 @@ +from pprint import PrettyPrinter + +printer = PrettyPrinter(indent=2) + + +def pretty_print(x): + return printer.pprint(x) diff --git a/universe/ac_types/pretty.pyc b/universe/ac_types/pretty.pyc new file mode 100644 index 000000000000..1f735fdb25e0 --- /dev/null +++ b/universe/ac_types/pretty.pyc Binary files differdiff --git a/universe/ac_types/regex.py b/universe/ac_types/regex.py new file mode 100644 index 000000000000..e5203bedfae4 --- /dev/null +++ b/universe/ac_types/regex.py @@ -0,0 +1,18 @@ +import re +from test_utils import simple_assert + + +def remove(regex, x): + """Attempt to remove the substring matching `re` from `x`.""" + return re.sub(regex, '', x) + + +# No occurence +simple_assert(remove(r'\s\([\w\s]+\)$', 'Atlas.CustomerId'), + 'Atlas.CustomerId', + name="remove") +# Single occurence +simple_assert(remove(r'\s\([\w\s]+\)$', + 'Atlas.CustomerId (adjusted for MCC IDs)'), + 'Atlas.CustomerId', + name="remove") diff --git a/universe/ac_types/scrape.py b/universe/ac_types/scrape.py new file mode 100644 index 000000000000..a68bdcc9afca --- /dev/null +++ b/universe/ac_types/scrape.py @@ -0,0 +1,51 @@ +from test_utils import simple_assert +import re +import log +import regex + + +# Warning: This is a linear search each time. Quite scrappy and hackish, but it +# works. Trademarked... +def attribute_id_for(x, error_when_absent=True): + """Return the Attribute ID for `x` as defined in attributes.pb.""" + is_next = False + known = { + 'Form.description': '^2941', + 'Form.country': '^16296', + # Entering this here since some of the CSV have malformed data, and I'm + # not currently interested in a more robust solution. + 'form.country': '^16296', + 'Form.countries_business_serve': '^14659', + 'Form.name': '^1665', + } + if x in known: + return known[x] + + for line in open('attributes.pb', 'r').readlines(): + if is_next: + return line[7:-2] + if x in line: + is_next = True + else: + is_next = False + if error_when_absent: + raise Exception("Could not find \"{}\" in the protobuf.".format(x)) + else: + return '{} # TODO(wpcarro): scrape.attribute_id_for could not find the ID.'.format( + x) + + +actual = [ + attribute_id_for('Form.description'), + attribute_id_for('Form.country'), + attribute_id_for('Form.countries_business_serve'), + attribute_id_for('Form.name'), + attribute_id_for('Atlas.CustomerId'), + attribute_id_for('Form.form-id'), + attribute_id_for('Form.Ar_descr_textbox'), + attribute_id_for('AR.ART.LastDecisionRecommended'), +] +expected = [ + '^2941', '^16296', '^14659', '^1665', '^1421', '^4297', '^6664', '^106918' +] +simple_assert(actual, expected) diff --git a/universe/ac_types/serialize.py b/universe/ac_types/serialize.py new file mode 100644 index 000000000000..966a9024f3fa --- /dev/null +++ b/universe/ac_types/serialize.py @@ -0,0 +1,67 @@ +from test_utils import simple_assert +import string as string + + +def literal(x): + if x == True: + return 'true' + elif x == False: + return 'false' + elif isinstance(x, int): + return str(x) + elif x is None: + raise Exception("None!") + # `x` is a string + else: + x = string.trim_surrounding('"', x) + return "\"{}\"".format(x) + + +actual = [ + literal(True), + literal(9249441), + literal("COMPLEXITY"), + literal("\"doubly wrapped string\"") +] +expected = ["true", "9249441", "\"COMPLEXITY\"", "\"doubly wrapped string\""] +simple_assert(actual, expected, name="literal") + + +def input(input_type=None, fields=None): + header = 'inputs {' + input_type_field = ' type: {}'.format(input_type) + fields = '\n'.join( + [" {}: {}".format(k, literal(v)) for k, v in fields.items()]) + if input_type == 'SIGNAL': + fields += '\n signal_type: CID' + footer = '}' + return '\n'.join([header, input_type_field, fields, footer]) + + +actual = input(input_type='CONSTANT', + fields={ + 'consult_frd_id': 'FEATURE', + 'is_optional': False, + 'constant_value': "regular_review", + }) +expected = """inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "regular_review" +}""" +simple_assert(actual, expected, name='input') + +actual = input(input_type='CONSTANT', + fields={ + 'consult_frd_id': 'FEATURE', + 'is_optional': False, + 'constant_value': "\"doubly wrapped string\"", + }) +expected = """inputs { + type: CONSTANT + consult_frd_id: "FEATURE" + is_optional: false + constant_value: "doubly wrapped string" +}""" +simple_assert(actual, expected, name='input') diff --git a/universe/ac_types/string.py b/universe/ac_types/string.py new file mode 100644 index 000000000000..9ef6c3ab52a6 --- /dev/null +++ b/universe/ac_types/string.py @@ -0,0 +1,90 @@ +from test_utils import simple_assert + + +def with_banner(x): + header = '#################################################################' + text = '# {}'.format(x) + footer = '#################################################################' + return '\n'.join([header, text, footer]) + + +def starts_with(prefix, x): + """Return True if `x` starts with `prefix`.""" + return x.startswith(prefix) + + +def ends_with(prefix, x): + """Return True if `x` starts with `prefix`.""" + return x.endswith(prefix) + + +def trim_prefix(prefix, x): + """Remove `prefix` from `x` if present.""" + if x.startswith(prefix): + return x[len(prefix):] + else: + return x + + +actual = [trim_prefix('"', '"leading"'), trim_prefix('"', 'non-leading')] +expected = ['leading"', 'non-leading'] +simple_assert(actual, expected, name="trim_prefix") + + +def trim_suffix(suffix, x): + """Remove `suffix` from `x` if present.""" + if x.endswith(suffix): + amt = len(x) - len(suffix) + return x[0:amt] + else: + return x + + +actual = [ + trim_suffix('ing"', '"trailing"'), + trim_suffix('ing"', 'non-trailing') +] +expected = ['"trail', 'non-trailing'] +simple_assert(actual, expected, name="trim_suffix") + + +def trim_surrounding(b, x): + """Remove `b` from `x` if present as prefix and suffix.""" + if x.startswith(b) and x.endswith(b): + x = trim_prefix(b, x) + x = trim_suffix(b, x) + return x + else: + return x + + +actual = [ + trim_surrounding('"', '"surrounded"'), + trim_surrounding('"', 'non-surrounded'), + trim_surrounding('"', '"just-prefixed'), + trim_surrounding('"', 'just-suffixed"'), +] +expected = ['surrounded', 'non-surrounded', '"just-prefixed', 'just-suffixed"'] +simple_assert(actual, expected, name="trim_surrounding") + + +def indent(x, spaces=2): + """Indent string `x` number of `spaces`, defaulting to two.""" + return '\n'.join([' ' * spaces + line for line in x.split('\n')]) + + +actual = indent("""testing +this function +out""") +expected = """ testing + this function + out""" +simple_assert(actual, expected, name="indent") + +actual = indent("""testing +this function +out""", spaces=4) +expected = """ testing + this function + out""" +simple_assert(actual, expected, name="indent") diff --git a/universe/ac_types/string.pyc b/universe/ac_types/string.pyc new file mode 100644 index 000000000000..df93a05fd5cd --- /dev/null +++ b/universe/ac_types/string.pyc Binary files differdiff --git a/universe/ac_types/test_utils.py b/universe/ac_types/test_utils.py new file mode 100644 index 000000000000..1c1570754eb6 --- /dev/null +++ b/universe/ac_types/test_utils.py @@ -0,0 +1,21 @@ +silent_on_success = True + + +# I need to define this herein to avoid introducing a circular dependency. +def with_banner(x): + header = '#################################################################' + text = '# {}'.format(x) + footer = '#################################################################' + return '\n'.join([header, text, footer]) + + +def simple_assert(actual, expected, name=None): + try: + assert actual == expected + if silent_on_success: + return None + else: + print(with_banner('{}: Test passes!'.format(name))) + except: + print(with_banner('{}: Test failure.'.format(name))) + print(actual) diff --git a/universe/ac_types/test_utils.pyc b/universe/ac_types/test_utils.pyc new file mode 100644 index 000000000000..ed6d0ea9642f --- /dev/null +++ b/universe/ac_types/test_utils.pyc Binary files differdiff --git a/universe/ac_types/todo.org b/universe/ac_types/todo.org new file mode 100644 index 000000000000..e4e274cc3d21 --- /dev/null +++ b/universe/ac_types/todo.org @@ -0,0 +1,5 @@ +* DONE Ensure order matches trix. +* DONE Use FRD identifier and not its display name for inputs.CONSTANT. +* DONE Ensure "Non-Sensitive Ads Review (Olympus)" support "olympus" and "olympus_plus". +* DONE Append output to consult.textproto. +* DONE Run `hg fix` on consult.textproto. |