REALTIMEBIDDING

realtimebidding.bidders.biddingFunctions.activate

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.biddingFunctions.archive

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.biddingFunctions.create

enum_BiddingFunctionType := [ "FUNCTION_TYPE_UNSPECIFIED", "TURTLEDOVE_SIMULATION_BIDDING_FUNCTION", "FLEDGE_BIDDING_FUNCTION" ]

valid {
    input.Body.biddingFunction == STRING
    input.Body.name == STRING
    input.Body.type == enum_BiddingFunctionType[_]
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.biddingFunctions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.creatives.list

enum_ViewParameter := [ "CREATIVE_VIEW_UNSPECIFIED", "SERVING_DECISION_ONLY", "FULL" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.creatives.watch

valid {
    input.Body.STRING == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.endpoints.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.endpoints.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.endpoints.patch

enum_EndpointBidProtocol := [ "BID_PROTOCOL_UNSPECIFIED", "GOOGLE_RTB", "OPENRTB_JSON", "OPENRTB_PROTOBUF" ]
enum_EndpointTradingLocation := [ "TRADING_LOCATION_UNSPECIFIED", "US_WEST", "US_EAST", "EUROPE", "ASIA" ]

valid {
    input.Body.bidProtocol == enum_EndpointBidProtocol[_]
    input.Body.maximumQps == STRING
    input.Body.tradingLocation == enum_EndpointTradingLocation[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.list

valid {
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.activate

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.addTargetedApps

enum_AddTargetedAppsRequestTargetingMode := [ "TARGETING_MODE_UNSPECIFIED", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.appIds[_] == STRING
    input.Body.targetingMode == enum_AddTargetedAppsRequestTargetingMode[_]
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.addTargetedPublishers

enum_AddTargetedPublishersRequestTargetingMode := [ "TARGETING_MODE_UNSPECIFIED", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.publisherIds[_] == STRING
    input.Body.targetingMode == enum_AddTargetedPublishersRequestTargetingMode[_]
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.addTargetedSites

enum_AddTargetedSitesRequestTargetingMode := [ "TARGETING_MODE_UNSPECIFIED", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.sites[_] == STRING
    input.Body.targetingMode == enum_AddTargetedSitesRequestTargetingMode[_]
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.create

enum_PretargetingConfigAllowedUserTargetingModes := [ "USER_TARGETING_MODE_UNSPECIFIED", "REMARKETING_ADS", "INTEREST_BASED_TARGETING" ]
enum_PretargetingConfigIncludedEnvironments := [ "ENVIRONMENT_UNSPECIFIED", "APP", "WEB" ]
enum_PretargetingConfigIncludedFormats := [ "CREATIVE_FORMAT_UNSPECIFIED", "HTML", "VAST", "NATIVE" ]
enum_PretargetingConfigIncludedPlatforms := [ "PLATFORM_UNSPECIFIED", "PERSONAL_COMPUTER", "PHONE", "TABLET", "CONNECTED_TV" ]
enum_PretargetingConfigIncludedUserIdTypes := [ "USER_ID_TYPE_UNSPECIFIED", "HOSTED_MATCH_DATA", "GOOGLE_COOKIE", "DEVICE_ID", "PUBLISHER_PROVIDED_ID" ]
enum_PretargetingConfigInterstitialTargeting := [ "INTERSTITIAL_TARGETING_UNSPECIFIED", "ONLY_INTERSTITIAL_REQUESTS", "ONLY_NON_INTERSTITIAL_REQUESTS" ]
enum_StringTargetingDimensionTargetingMode := [ "TARGETING_MODE_UNSPECIFIED", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.allowedUserTargetingModes[_] == enum_PretargetingConfigAllowedUserTargetingModes[_]
    input.Body.appTargeting.mobileAppCategoryTargeting.excludedIds[_] == STRING
    input.Body.appTargeting.mobileAppCategoryTargeting.includedIds[_] == STRING
    input.Body.appTargeting.mobileAppTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.appTargeting.mobileAppTargeting.values[_] == STRING
    input.Body.displayName == STRING
    input.Body.excludedContentLabelIds[_] == STRING
    input.Body.geoTargeting.excludedIds[_] == STRING
    input.Body.geoTargeting.includedIds[_] == STRING
    input.Body.includedCreativeDimensions[_].height == STRING
    input.Body.includedCreativeDimensions[_].width == STRING
    input.Body.includedEnvironments[_] == enum_PretargetingConfigIncludedEnvironments[_]
    input.Body.includedFormats[_] == enum_PretargetingConfigIncludedFormats[_]
    input.Body.includedLanguages[_] == STRING
    input.Body.includedMobileOperatingSystemIds[_] == STRING
    input.Body.includedPlatforms[_] == enum_PretargetingConfigIncludedPlatforms[_]
    input.Body.includedUserIdTypes[_] == enum_PretargetingConfigIncludedUserIdTypes[_]
    input.Body.interstitialTargeting == enum_PretargetingConfigInterstitialTargeting[_]
    input.Body.maximumQps == STRING
    input.Body.minimumViewabilityDecile == INTEGER
    input.Body.publisherTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.publisherTargeting.values[_] == STRING
    input.Body.userListTargeting.excludedIds[_] == STRING
    input.Body.userListTargeting.includedIds[_] == STRING
    input.Body.verticalTargeting.excludedIds[_] == STRING
    input.Body.verticalTargeting.includedIds[_] == STRING
    input.Body.webTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.webTargeting.values[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.patch

enum_PretargetingConfigAllowedUserTargetingModes := [ "USER_TARGETING_MODE_UNSPECIFIED", "REMARKETING_ADS", "INTEREST_BASED_TARGETING" ]
enum_PretargetingConfigIncludedEnvironments := [ "ENVIRONMENT_UNSPECIFIED", "APP", "WEB" ]
enum_PretargetingConfigIncludedFormats := [ "CREATIVE_FORMAT_UNSPECIFIED", "HTML", "VAST", "NATIVE" ]
enum_PretargetingConfigIncludedPlatforms := [ "PLATFORM_UNSPECIFIED", "PERSONAL_COMPUTER", "PHONE", "TABLET", "CONNECTED_TV" ]
enum_PretargetingConfigIncludedUserIdTypes := [ "USER_ID_TYPE_UNSPECIFIED", "HOSTED_MATCH_DATA", "GOOGLE_COOKIE", "DEVICE_ID", "PUBLISHER_PROVIDED_ID" ]
enum_PretargetingConfigInterstitialTargeting := [ "INTERSTITIAL_TARGETING_UNSPECIFIED", "ONLY_INTERSTITIAL_REQUESTS", "ONLY_NON_INTERSTITIAL_REQUESTS" ]
enum_StringTargetingDimensionTargetingMode := [ "TARGETING_MODE_UNSPECIFIED", "INCLUSIVE", "EXCLUSIVE" ]

valid {
    input.Body.allowedUserTargetingModes[_] == enum_PretargetingConfigAllowedUserTargetingModes[_]
    input.Body.appTargeting.mobileAppCategoryTargeting.excludedIds[_] == STRING
    input.Body.appTargeting.mobileAppCategoryTargeting.includedIds[_] == STRING
    input.Body.appTargeting.mobileAppTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.appTargeting.mobileAppTargeting.values[_] == STRING
    input.Body.displayName == STRING
    input.Body.excludedContentLabelIds[_] == STRING
    input.Body.geoTargeting.excludedIds[_] == STRING
    input.Body.geoTargeting.includedIds[_] == STRING
    input.Body.includedCreativeDimensions[_].height == STRING
    input.Body.includedCreativeDimensions[_].width == STRING
    input.Body.includedEnvironments[_] == enum_PretargetingConfigIncludedEnvironments[_]
    input.Body.includedFormats[_] == enum_PretargetingConfigIncludedFormats[_]
    input.Body.includedLanguages[_] == STRING
    input.Body.includedMobileOperatingSystemIds[_] == STRING
    input.Body.includedPlatforms[_] == enum_PretargetingConfigIncludedPlatforms[_]
    input.Body.includedUserIdTypes[_] == enum_PretargetingConfigIncludedUserIdTypes[_]
    input.Body.interstitialTargeting == enum_PretargetingConfigInterstitialTargeting[_]
    input.Body.maximumQps == STRING
    input.Body.minimumViewabilityDecile == INTEGER
    input.Body.publisherTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.publisherTargeting.values[_] == STRING
    input.Body.userListTargeting.excludedIds[_] == STRING
    input.Body.userListTargeting.includedIds[_] == STRING
    input.Body.verticalTargeting.excludedIds[_] == STRING
    input.Body.verticalTargeting.includedIds[_] == STRING
    input.Body.webTargeting.targetingMode == enum_StringTargetingDimensionTargetingMode[_]
    input.Body.webTargeting.values[_] == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.removeTargetedApps

valid {
    input.Body.appIds[_] == STRING
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.removeTargetedPublishers

valid {
    input.Body.publisherIds[_] == STRING
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.removeTargetedSites

valid {
    input.Body.sites[_] == STRING
    input.ReqMap.pretargetingConfig == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.pretargetingConfigs.suspend

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.publisherConnections.batchApprove

valid {
    input.Body.names[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.publisherConnections.batchReject

valid {
    input.Body.names[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.publisherConnections.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.bidders.publisherConnections.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.creatives.create

enum_CreativeDeclaredAttributes := [ "ATTRIBUTE_UNSPECIFIED", "IMAGE_RICH_MEDIA", "ADOBE_FLASH_FLV", "IS_TAGGED", "IS_COOKIE_TARGETED", "IS_USER_INTEREST_TARGETED", "EXPANDING_DIRECTION_NONE", "EXPANDING_DIRECTION_UP", "EXPANDING_DIRECTION_DOWN", "EXPANDING_DIRECTION_LEFT", "EXPANDING_DIRECTION_RIGHT", "EXPANDING_DIRECTION_UP_LEFT", "EXPANDING_DIRECTION_UP_RIGHT", "EXPANDING_DIRECTION_DOWN_LEFT", "EXPANDING_DIRECTION_DOWN_RIGHT", "CREATIVE_TYPE_HTML", "CREATIVE_TYPE_VAST_VIDEO", "EXPANDING_DIRECTION_UP_OR_DOWN", "EXPANDING_DIRECTION_LEFT_OR_RIGHT", "EXPANDING_DIRECTION_ANY_DIAGONAL", "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_MRAID", "RICH_MEDIA_CAPABILITY_TYPE_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_HTML5", "SKIPPABLE_INSTREAM_VIDEO", "RICH_MEDIA_CAPABILITY_TYPE_SSL", "RICH_MEDIA_CAPABILITY_TYPE_NON_SSL", "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", "NON_SKIPPABLE_INSTREAM_VIDEO", "NATIVE_ELIGIBILITY_ELIGIBLE", "NON_VPAID", "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", "ANY_INTERSTITIAL", "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", "OMSDK_1_0", "RENDERING_PLAYABLE" ]
enum_CreativeDeclaredRestrictedCategories := [ "RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL" ]
enum_CreativeRestrictedCategories := [ "RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL" ]

valid {
    input.Body.adChoicesDestinationUrl == STRING
    input.Body.advertiserName == STRING
    input.Body.agencyId == STRING
    input.Body.creativeId == STRING
    input.Body.declaredAttributes[_] == enum_CreativeDeclaredAttributes[_]
    input.Body.declaredClickThroughUrls[_] == STRING
    input.Body.declaredRestrictedCategories[_] == enum_CreativeDeclaredRestrictedCategories[_]
    input.Body.declaredVendorIds[_] == INTEGER
    input.Body.html.height == INTEGER
    input.Body.html.snippet == STRING
    input.Body.html.width == INTEGER
    input.Body.impressionTrackingUrls[_] == STRING
    input.Body.native.advertiserName == STRING
    input.Body.native.appIcon.height == INTEGER
    input.Body.native.appIcon.url == STRING
    input.Body.native.appIcon.width == INTEGER
    input.Body.native.body == STRING
    input.Body.native.callToAction == STRING
    input.Body.native.clickLinkUrl == STRING
    input.Body.native.clickTrackingUrl == STRING
    input.Body.native.headline == STRING
    input.Body.native.image.height == INTEGER
    input.Body.native.image.url == STRING
    input.Body.native.image.width == INTEGER
    input.Body.native.logo.height == INTEGER
    input.Body.native.logo.url == STRING
    input.Body.native.logo.width == INTEGER
    input.Body.native.priceDisplayText == STRING
    input.Body.native.starRating == NUMBER
    input.Body.native.videoUrl == STRING
    input.Body.native.videoVastXml == STRING
    input.Body.renderUrl == STRING
    input.Body.restrictedCategories[_] == enum_CreativeRestrictedCategories[_]
    input.Body.video.videoUrl == STRING
    input.Body.video.videoVastXml == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.creatives.get

enum_ViewParameter := [ "CREATIVE_VIEW_UNSPECIFIED", "SERVING_DECISION_ONLY", "FULL" ]

valid {
    input.ReqMap.name == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.creatives.list

enum_ViewParameter := [ "CREATIVE_VIEW_UNSPECIFIED", "SERVING_DECISION_ONLY", "FULL" ]

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.creatives.patch

enum_CreativeDeclaredAttributes := [ "ATTRIBUTE_UNSPECIFIED", "IMAGE_RICH_MEDIA", "ADOBE_FLASH_FLV", "IS_TAGGED", "IS_COOKIE_TARGETED", "IS_USER_INTEREST_TARGETED", "EXPANDING_DIRECTION_NONE", "EXPANDING_DIRECTION_UP", "EXPANDING_DIRECTION_DOWN", "EXPANDING_DIRECTION_LEFT", "EXPANDING_DIRECTION_RIGHT", "EXPANDING_DIRECTION_UP_LEFT", "EXPANDING_DIRECTION_UP_RIGHT", "EXPANDING_DIRECTION_DOWN_LEFT", "EXPANDING_DIRECTION_DOWN_RIGHT", "CREATIVE_TYPE_HTML", "CREATIVE_TYPE_VAST_VIDEO", "EXPANDING_DIRECTION_UP_OR_DOWN", "EXPANDING_DIRECTION_LEFT_OR_RIGHT", "EXPANDING_DIRECTION_ANY_DIAGONAL", "EXPANDING_ACTION_ROLLOVER_TO_EXPAND", "INSTREAM_VAST_VIDEO_TYPE_VPAID_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_MRAID", "RICH_MEDIA_CAPABILITY_TYPE_FLASH", "RICH_MEDIA_CAPABILITY_TYPE_HTML5", "SKIPPABLE_INSTREAM_VIDEO", "RICH_MEDIA_CAPABILITY_TYPE_SSL", "RICH_MEDIA_CAPABILITY_TYPE_NON_SSL", "RICH_MEDIA_CAPABILITY_TYPE_INTERSTITIAL", "NON_SKIPPABLE_INSTREAM_VIDEO", "NATIVE_ELIGIBILITY_ELIGIBLE", "NON_VPAID", "NATIVE_ELIGIBILITY_NOT_ELIGIBLE", "ANY_INTERSTITIAL", "NON_INTERSTITIAL", "IN_BANNER_VIDEO", "RENDERING_SIZELESS_ADX", "OMSDK_1_0", "RENDERING_PLAYABLE" ]
enum_CreativeDeclaredRestrictedCategories := [ "RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL" ]
enum_CreativeRestrictedCategories := [ "RESTRICTED_CATEGORY_UNSPECIFIED", "ALCOHOL" ]

valid {
    input.Body.adChoicesDestinationUrl == STRING
    input.Body.advertiserName == STRING
    input.Body.agencyId == STRING
    input.Body.creativeId == STRING
    input.Body.declaredAttributes[_] == enum_CreativeDeclaredAttributes[_]
    input.Body.declaredClickThroughUrls[_] == STRING
    input.Body.declaredRestrictedCategories[_] == enum_CreativeDeclaredRestrictedCategories[_]
    input.Body.declaredVendorIds[_] == INTEGER
    input.Body.html.height == INTEGER
    input.Body.html.snippet == STRING
    input.Body.html.width == INTEGER
    input.Body.impressionTrackingUrls[_] == STRING
    input.Body.native.advertiserName == STRING
    input.Body.native.appIcon.height == INTEGER
    input.Body.native.appIcon.url == STRING
    input.Body.native.appIcon.width == INTEGER
    input.Body.native.body == STRING
    input.Body.native.callToAction == STRING
    input.Body.native.clickLinkUrl == STRING
    input.Body.native.clickTrackingUrl == STRING
    input.Body.native.headline == STRING
    input.Body.native.image.height == INTEGER
    input.Body.native.image.url == STRING
    input.Body.native.image.width == INTEGER
    input.Body.native.logo.height == INTEGER
    input.Body.native.logo.url == STRING
    input.Body.native.logo.width == INTEGER
    input.Body.native.priceDisplayText == STRING
    input.Body.native.starRating == NUMBER
    input.Body.native.videoUrl == STRING
    input.Body.native.videoVastXml == STRING
    input.Body.renderUrl == STRING
    input.Body.restrictedCategories[_] == enum_CreativeRestrictedCategories[_]
    input.Body.video.videoUrl == STRING
    input.Body.video.videoVastXml == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.getRemarketingTag

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.list

valid {
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.close

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.create

enum_UrlRestrictionRestrictionType := [ "RESTRICTION_TYPE_UNSPECIFIED", "CONTAINS", "EQUALS", "STARTS_WITH", "ENDS_WITH", "DOES_NOT_EQUAL", "DOES_NOT_CONTAIN", "DOES_NOT_START_WITH", "DOES_NOT_END_WITH" ]

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.membershipDurationDays == STRING
    input.Body.urlRestriction.endDate.day == INTEGER
    input.Body.urlRestriction.endDate.month == INTEGER
    input.Body.urlRestriction.endDate.year == INTEGER
    input.Body.urlRestriction.restrictionType == enum_UrlRestrictionRestrictionType[_]
    input.Body.urlRestriction.startDate.day == INTEGER
    input.Body.urlRestriction.startDate.month == INTEGER
    input.Body.urlRestriction.startDate.year == INTEGER
    input.Body.urlRestriction.url == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.getRemarketingTag

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.open

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

realtimebidding.buyers.userLists.update

enum_UrlRestrictionRestrictionType := [ "RESTRICTION_TYPE_UNSPECIFIED", "CONTAINS", "EQUALS", "STARTS_WITH", "ENDS_WITH", "DOES_NOT_EQUAL", "DOES_NOT_CONTAIN", "DOES_NOT_START_WITH", "DOES_NOT_END_WITH" ]

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.membershipDurationDays == STRING
    input.Body.urlRestriction.endDate.day == INTEGER
    input.Body.urlRestriction.endDate.month == INTEGER
    input.Body.urlRestriction.endDate.year == INTEGER
    input.Body.urlRestriction.restrictionType == enum_UrlRestrictionRestrictionType[_]
    input.Body.urlRestriction.startDate.day == INTEGER
    input.Body.urlRestriction.startDate.month == INTEGER
    input.Body.urlRestriction.startDate.year == INTEGER
    input.Body.urlRestriction.url == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}