All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adgear.avro.openrtb.BidRequest Maven / Gradle / Ivy

Go to download

Test module for other Anoa modules, which exposes complex records (OpenRTB bid requests) through utility classes for use in unit tests within other Anoa modules (anoa-core, for instance).

The newest version!
/**
 * Autogenerated by Avro
 * 
 * DO NOT EDIT DIRECTLY
 */
package com.adgear.avro.openrtb;  


/** 3.3.1 Bid Request Object
The top-level bid request object contains a globally unique bid request or auction ID. This “id” attribute is required as is at least one “imp” (i.e., impression) object. Other attributes are optional since an exchange may establish default values.

requires:
 com.adgear.avro.openrtb.Impression
 com.adgear.avro.openrtb.Site
 com.adgear.avro.openrtb.App
 com.adgear.avro.openrtb.Device
 com.adgear.avro.openrtb.User
 com.adgear.avro.openrtb.Regulations */
@SuppressWarnings("all")
@org.apache.avro.specific.AvroGenerated
public class BidRequest extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"BidRequest\",\"namespace\":\"com.adgear.avro.openrtb\",\"doc\":\"3.3.1 Bid Request Object\\nThe top-level bid request object contains a globally unique bid request or auction ID. This “id” attribute is required as is at least one “imp” (i.e., impression) object. Other attributes are optional since an exchange may establish default values.\\n\\nrequires:\\n com.adgear.avro.openrtb.Impression\\n com.adgear.avro.openrtb.Site\\n com.adgear.avro.openrtb.App\\n com.adgear.avro.openrtb.Device\\n com.adgear.avro.openrtb.User\\n com.adgear.avro.openrtb.Regulations\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"[01] Unique ID of the bid request, provided by the exchange.\"},{\"name\":\"imp\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Impression\",\"doc\":\"3.3.2 Impression Object\\nThe “imp” object describes the ad position or impression being auctioned. A single bid request can include multiple “imp” objects, a use case for which might be an exchange that supports selling all ad positions on a given page as a bundle. Each “imp” object has a required ID so that bids can reference them individually. An exchange can also conduct private auctions by restricting involvement to specific subsets of seats within bidders.\\n\\nrequires:\\n com.adgear.avro.openrtb.Banner\\n com.adgear.avro.openrtb.Video\\n com.adgear.avro.openrtb.PMP\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"[01] A unique identifier for this impression within the context of the bid request (typically, value starts with 1, and increments up to n for n impressions).\"},{\"name\":\"banner\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Banner\",\"doc\":\"3.3.3 Banner Object\\nThe “banner” object _must_ be included directly in the impression object if the impression offered for auction is display or rich media, or it may be _optionally_ embedded in the video object to describe the companion banners available for the linear or non-linear video ad. The banner object may include a unique identifier; this can be useful if these IDs can be leveraged in the VAST response to dictate placement of the companion creatives when multiple companion ad opportunities of the same size are available on a page.\",\"fields\":[{\"name\":\"w\",\"type\":[\"null\",\"int\"],\"doc\":\"[01] Width of the impression in pixels. Since some ad types are not restricted by size this field is not required, but it’s highly recommended that this information be included when possible.\",\"default\":null},{\"name\":\"h\",\"type\":[\"null\",\"int\"],\"doc\":\"[02] Height of the impression in pixels. Since some ad types are not restricted by size this field is not required, but it’s highly recommended that this information be included when possible.\",\"default\":null},{\"name\":\"wmax\",\"type\":[\"null\",\"int\"],\"doc\":\"[03] Maximum width of the impression in pixels. If included, it indicates that a range of sizes is allowed with this maximum width and \\\"w\\\" is taken as recommended. If not included, then \\\"w\\\" should be considered an exact requirement.\",\"default\":null},{\"name\":\"hmax\",\"type\":[\"null\",\"int\"],\"doc\":\"[04] Maximum height of the impression in pixels. If included, it indicates that a range of sizes is allowed with this maximum height and \\\"h\\\" is taken as recommended. If not included, then \\\"h\\\" should be considered an exact requirement.\",\"default\":null},{\"name\":\"wmin\",\"type\":[\"null\",\"int\"],\"doc\":\"[05] Minimum width of the impression in pixels. If included, it indicates that a range of sizes is allowed with this minimum width and \\\"w\\\" is taken as recommended. If not included, then \\\"w\\\" should be considered an exact requirement.\",\"default\":null},{\"name\":\"hmin\",\"type\":[\"null\",\"int\"],\"doc\":\"[06] Minimum height of the impression in pixels. If included, it indicates that a range of sizes is allowed with this minimum height and \\\"h\\\" is taken as recommended. If not included, then \\\"h\\\" should be considered an exact requirement.\",\"default\":null},{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] Unique identifier for this banner object. Useful for tracking multiple banner objects (e.g., in companion banner array). Usually starts with 1, increasing with each object. Combination of impression id banner object should be unique.\",\"default\":null},{\"name\":\"pos\",\"type\":[\"null\",\"int\"],\"doc\":\"[08] Ad Position. Use Table 6.5\",\"default\":null},{\"name\":\"btype\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[09] Blocked creative types. See Table 6.2 Banner Ad Types. If blank, assume all types are allowed.\",\"default\":null},{\"name\":\"battr\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[10] Blocked creative attributes. See Table 6.3 Creative Attributes. If blank assume all types are allowed.\",\"default\":null},{\"name\":\"mimes\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[11] Whitelist of content MIME types supported. Popular MIME types include, but are not limited to “image/jpg”, “image/gif” and “application/x-shockwave-flash”.\",\"default\":null},{\"name\":\"topframe\",\"type\":\"int\",\"doc\":\"[12] Specify if the banner is delivered in the top frame or in an iframe. “0” means it is not in the top frame, and “1” means that it is.\",\"default\":0},{\"name\":\"expdir\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[13] Specify properties for an expandable ad. See Table 6.11 Expandable Direction for possible values.\",\"default\":null},{\"name\":\"api\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[14] List of supported API frameworks for this banner. (See Table 6.4 API Frameworks). If an API is not explicitly listed it is assumed not to be supported.\",\"default\":null}]}],\"doc\":\"[02] A reference to a banner object. Either a banner or video object (or both if the impression could be either) must be included in an impression object. See Banner Object.\",\"default\":null},{\"name\":\"video\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Video\",\"doc\":\"3.3.4 Video Object\\nThe “video” object _must_ be included directly in the impression object if the impression offered for auction is an in-stream video ad opportunity.\\nNote that for the video object, many of the fields are non-essential for a minimally viable exchange interfaces. These parameters do not necessarily need to be specified to the bidder, if they are always the same for all impression, of if the exchange chooses not to supply the additional information to the bidder.\\n\\nrequires:\\n com.adgear.avro.openrtb.Banner\",\"fields\":[{\"name\":\"mimes\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"doc\":\"[01] Content MIME types supported. Popular MIME types include, but are not limited to “video/x-ms- wmv” for Windows Media, and “video/x-flv” for Flash Video.\",\"default\":[]},{\"name\":\"minduration\",\"type\":\"int\",\"doc\":\"[03] Minimum video ad duration in seconds.\",\"default\":-1},{\"name\":\"maxduration\",\"type\":\"int\",\"doc\":\"[04] Maximum video ad duration in seconds.\",\"default\":-1},{\"name\":\"protocol\",\"type\":[\"null\",\"int\"],\"doc\":\"[05] Video bid response protocols. See Table 6.7 Video Bid Response Protocols for a list of possible values. NOTE: Use “protocols” when multiple protocols are supported. Its use is also highly recommended even for one since this “protocol” attribute is likely to be deprecated in a future version.\\n           At least one supported protocol must be specified in either the “protocol” or “protocols” attribute.\",\"default\":null},{\"name\":\"protocols\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[06] Video bid response protocols. See Table 6.7 Video Bid Response Protocols for a list of possible values.\\n           At least one supported protocol must be specified in either the “protocol” or “protocols” attribute.\",\"default\":null},{\"name\":\"w\",\"type\":[\"null\",\"int\"],\"doc\":\"[07] Width of the player in pixels. This field is not required, but it’s highly recommended that this information be included.\",\"default\":null},{\"name\":\"h\",\"type\":[\"null\",\"int\"],\"doc\":\"[08] Height of the player in pixels. This field is not required, but it’s highly recommended that this information be included.\",\"default\":null},{\"name\":\"startdelay\",\"type\":[\"null\",\"int\"],\"doc\":\"[09] Indicates the start delay in seconds for preroll, midroll, or postroll ad placement. See Table 6.9 Video Start Delay for generic placement values.\",\"default\":null},{\"name\":\"linearity\",\"type\":[\"null\",\"int\"],\"doc\":\"[10] Indicates whether the ad impression must be linear, non- linear or can be of any type (field not set). See Table 6.6 Video Linearity for a list of the possible values and recommended bidder interpretation.\",\"default\":null},{\"name\":\"sequence\",\"type\":\"int\",\"doc\":\"[11] If multiple ad impressions are offered in the same bid request, the sequence number will allow for the coordinated delivery of multiple creatives.\",\"default\":1},{\"name\":\"battr\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[12] Blocked creative attributes. See Table 6.3 Creative Attributes. If blank assume all types are allowed.\",\"default\":null},{\"name\":\"maxextended\",\"type\":\"int\",\"doc\":\"[13] Maximum extended video ad duration, if extension is allowed. If blank or 0, extension is not allowed. If -1, extension is allowed, and there is no time limit imposed. If greater than 0, then the value represents the number of seconds of extended play supported beyond the maxduration value.\",\"default\":0},{\"name\":\"minbitrate\",\"type\":[\"null\",\"int\"],\"doc\":\"[14] Minimum bit rate in Kbps. Exchange may set this dynamically, or universally across their set of publishers.\",\"default\":null},{\"name\":\"maxbitrate\",\"type\":[\"null\",\"int\"],\"doc\":\"[15] Maximum bit rate in Kbps. Exchange may set this dynamically, or universally across their set of publishers.\",\"default\":null},{\"name\":\"boxingallowed\",\"type\":\"int\",\"doc\":\"[16] If exchange publisher has rules preventing letter boxing of 4x3 content to play in a 16x9 window, then this should be set to false. Default setting is true, which assumes that boxing of content to fit into a window is allowed. “1” indicates boxing is allowed. “0” indicates it is not allowed.\",\"default\":1},{\"name\":\"playbackmethod\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[17] List of allowed playback methods. If blank, assume that all are allowed. See Table 6.8 Video Playback Methods for a list of possible values.\",\"default\":null},{\"name\":\"deliverymethod\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[18] List of supported delivery methods (streaming, progressive). If blank, assume all are supported. See Table 6.12 Content Delivery Methods for a list of possible values.\",\"default\":null},{\"name\":\"pos\",\"type\":\"int\",\"doc\":\"[19] Ad Position (see table 6.5). Default: unknown.\",\"default\":0},{\"name\":\"companionad\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"Banner\"}],\"doc\":\"[20] If companion ads are available, they can be listed as an array of banner objects. See Banner Object.\",\"default\":null},{\"name\":\"api\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[21] List of supported API frameworks for this impression. (See Table 6.4 API Frameworks). If an API is not explicitly listed it is assumed not to be supported.\",\"default\":null},{\"name\":\"vast_companion_type\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"int\"}],\"doc\":\"[22] Recommended if companion objects are included. See Table 6.17 VAST Companion Types for a list of possible values.\",\"default\":null}]}],\"doc\":\"[03] A reference to a video object. Either a banner or video object (or both if the impression could be either) must be included in an impression object. See Video Object.\",\"default\":null},{\"name\":\"displaymanager\",\"type\":[\"null\",\"string\"],\"doc\":\"[04] Name of ad mediation partner, SDK technology, or native player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner.\",\"default\":null},{\"name\":\"displaymanagerver\",\"type\":[\"null\",\"string\"],\"doc\":\"[05] Version of ad mediation partner, SDK technology, or native player responsible for rendering ad (typically video or mobile). Used by some ad servers to customize ad code by partner.\",\"default\":null},{\"name\":\"instl\",\"type\":\"int\",\"doc\":\"[06] 1 if the ad is interstitial or full screen; else 0 (i.e., no).\",\"default\":0},{\"name\":\"tagid\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] Identifier for specific ad placement or ad tag that was used to initiate the auction. This can be useful for debugging of any issues, or for optimization by the buyer.\",\"default\":null},{\"name\":\"bidfloor\",\"type\":\"double\",\"doc\":\"[08] Bid floor for this impression (in CPM of bidfloorcur).\",\"default\":0.0},{\"name\":\"bidfloorcur\",\"type\":\"string\",\"doc\":\"[09] If bid floor is specified and multiple currencies supported per bid request, then currency should be specified here using ISO-4217 alphabetic codes. Note, this may be different from bid currency returned by bidder, if this is allowed on an exchange.\",\"default\":\"USD\"},{\"name\":\"secure\",\"type\":[\"null\",\"int\"],\"doc\":\"[10] Flag to indicate whether the impression requires secure HTTPS URL creative assets and markup. A value of “1” means that the impression requires secure assets. A value of \\\"0\\\" means non-secure assets. If this field is omitted the bidder should interpret the secure state is unknown and assume HTTP is supported.\",\"default\":null},{\"name\":\"iframebuster\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[11] Array of names for supported iframe busters. Exchange specific.\",\"default\":null},{\"name\":\"pmp\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"PMP\",\"doc\":\"3.3.16 PMP Object\\nThe “pmp” object contains a parent object for usage within the context of private marketplaces and the use of the RTB protocol to execute Direct Deals.\\n\\nrequires:\\n com.adgear.avro.openrtb.Deal\",\"fields\":[{\"name\":\"private_auction\",\"type\":[\"null\",\"int\"],\"doc\":\"[1] An integer flag indicating that this impression is a private auction eligible only to seats named in the Direct Deals object. (e.g., 1 = bids for this impression are restricted to the deals specified and the terms thereof; 0 = all bids are accepted)\",\"default\":null},{\"name\":\"deals\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Deal\",\"doc\":\"3.3.17 Direct Deals Object\\nA “deal” object constitutes a deal struck a priori between a buyer and a seller and indicates that this impression is available under the terms of that deal.\",\"fields\":[{\"name\":\"id\",\"type\":\"string\",\"doc\":\"[1] A unique identifier for the direct deal.\"},{\"name\":\"bidfloor\",\"type\":\"double\",\"doc\":\"[2] Bid floor for this impression (in CPM of bidfloorcur).\",\"default\":0.0},{\"name\":\"bidfloorcur\",\"type\":\"string\",\"doc\":\"[3] If bid floor is specified and multiple currencies supported per bid request, then currency should be specified here using ISO- 4217 alphabetic codes. Note, this may be different from bid currency returned by bidder, if this is allowed on an exchange.\",\"default\":\"USD\"},{\"name\":\"wseat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[4] Array of buyer seats allowed to bid on this Direct Deal. Seats are an optional feature of an exchange. For example, [“4”,”34”,”82”,”45”] indicates that only advertisers using these exchange seats are allowed to bid on this direct deal.\",\"default\":null},{\"name\":\"wadomain\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[5] Array of advertiser domains allowed to bid on this Direct Deal. For example, [“advertiser1.com”,”advertiser2.com”] indicates that only the listed advertisers are allowed to bid on this direct deal.\",\"default\":null},{\"name\":\"at\",\"type\":[\"null\",\"int\"],\"doc\":\"[6] Auction type. If “1”, then first price auction. If “2”, then second price auction. If “3”, the passed bidfloor indicates the apriori agreed upon deal price. Additional auction types can be defined as per the exchange’s business rules.\",\"default\":null}]}}],\"doc\":\"[2] A collection of “deal” objects encapsulating a list of direct deals eligible for this impression.\",\"default\":null}]}],\"doc\":\"[12] A reference to the PMP object containing any Deals eligible for the impression object. See the PMP Object definition.\",\"default\":null}]}},\"doc\":\"[02] Array of impression objects. Multiple impression auctions may be specified in a single bid request. At least one impression is required for a valid bid request.\"},{\"name\":\"site\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Site\",\"doc\":\"3.3.5 Site Object\\nA site object should be included if the ad supported content is part of a website (as opposed to an application). A bid request must not contain both a site object and an app object.\\nThe site object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. At a minimum, it’s useful to provide a page URL or a site ID, but this is not strictly required.\\n\\nrequires:\\n com.adgear.avro.openrtb.Publisher\\n com.adgear.avro.openrtb.Content\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[01] Site ID on the exchange.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[02] Site name (may be masked at publisher’s request).\",\"default\":null},{\"name\":\"domain\",\"type\":[\"null\",\"string\"],\"doc\":\"[03] Domain of the site, used for advertiser side blocking. For example, “foo.com”.\",\"default\":null},{\"name\":\"cat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[04] Array of IAB content categories for the overall site. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"sectioncat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[05] Array of IAB content categories for the current subsection of the site. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"pagecat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[06] Array of IAB content categories for the current page. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"page\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] URL of the page where the impression will be shown.\",\"default\":null},{\"name\":\"privacypolicy\",\"type\":[\"null\",\"int\"],\"doc\":\"[08] Specifies whether the site has a privacy policy. “1” means there is a policy. “0” means there is not.\",\"default\":null},{\"name\":\"ref\",\"type\":[\"null\",\"string\"],\"doc\":\"[09] Referrer URL that caused navigation to the current page.\",\"default\":null},{\"name\":\"search\",\"type\":[\"null\",\"string\"],\"doc\":\"[10] Search string that caused navigation to the current page.\",\"default\":null},{\"name\":\"publisher\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Publisher\",\"doc\":\"3.3.8 Publisher Object\\nThe publisher object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[1] Publisher ID on the exchange.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[2] Publisher name (may be masked at publisher’s request).\",\"default\":null},{\"name\":\"cat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[3] Array of IAB content categories for the publisher. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"domain\",\"type\":[\"null\",\"string\"],\"doc\":\"[4] Publisher’s highest level domain name, for example “foopub.com”.\",\"default\":null}]}],\"doc\":\"[11] See Publisher Object.\",\"default\":null},{\"name\":\"content\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Content\",\"doc\":\"3.3.7 Content Object\\nThe content object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. This object describes the content in which the impression will appear (may be syndicated or non- syndicated content).\\nThis object may be useful in the situation where syndicated content contains impressions and does not necessarily match the publisher’s general content. The exchange might or might not have knowledge of the page where the content is running, as a result of the syndication method. (For example, video impressions embedded in an iframe on an unknown web property or device.)\\n\\nrequires:\\n com.adgear.avro.openrtb.Producer\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[01] ID uniquely identifying the content.\",\"default\":null},{\"name\":\"episode\",\"type\":[\"null\",\"int\"],\"doc\":\"[02] Content episode number (typically applies to video content).\",\"default\":null},{\"name\":\"title\",\"type\":[\"null\",\"string\"],\"doc\":\"[03] Content title.\\n           Video examples: “Search Committee” (television) or “A New Hope” (movie) or “Endgame” (made for web)\\n           Non-video example: “Why an Antarctic Glacier Is Melting So Quickly” (Time magazine article)\",\"default\":null},{\"name\":\"series\",\"type\":[\"null\",\"string\"],\"doc\":\"[04] Content series.\\n           Video examples: “The Office” (television) or “Star Wars” (movie) or “Arby ‘N’ The Chief” (made for web)\\n           Non-video example: “Ecocentric” (Time magazine blog)\",\"default\":null},{\"name\":\"season\",\"type\":[\"null\",\"string\"],\"doc\":\"[05] Content season. E.g., “Season 3” (typically applies to video content).\",\"default\":null},{\"name\":\"url\",\"type\":[\"null\",\"string\"],\"doc\":\"[06] Original URL of the content, for buy-side contextualization or review.\",\"default\":null},{\"name\":\"cat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[07] Array of IAB content categories for the content. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"videoquality\",\"type\":[\"null\",\"int\"],\"doc\":\"[08] Video quality per the IAB’s classification. See Table 6.14 Video Quality.\",\"default\":null},{\"name\":\"keywords\",\"type\":[\"null\",\"string\"],\"doc\":\"[09] Comma separated list of keywords describing the content.\",\"default\":null},{\"name\":\"contentrating\",\"type\":[\"null\",\"string\"],\"doc\":\"[10] Content rating (e.g., MPAA)\",\"default\":null},{\"name\":\"userrating\",\"type\":[\"null\",\"string\"],\"doc\":\"[11] User rating of the content (e.g., number of stars, likes, etc.).\",\"default\":null},{\"name\":\"context\",\"type\":[\"null\",\"string\"],\"doc\":\"[12] Specifies the type of content (game, video, text, etc.). See Table 6.13 Content Context.\",\"default\":null},{\"name\":\"livestream\",\"type\":[\"null\",\"int\"],\"doc\":\"[13] Is content live? E.g., live video stream, live blog. “1” means content is live. “0” means it is not live.\",\"default\":null},{\"name\":\"sourcerelationship\",\"type\":[\"null\",\"int\"],\"doc\":\"[14] 1 for “direct”; 0 for “indirect”.\",\"default\":null},{\"name\":\"producer\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Producer\",\"doc\":\"3.3.9 Producer Object\\nThe producer is useful when content where the ad is shown is syndicated, and may appear on a completely different publisher. The producer object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. This object is optional, but useful if the content producer is different from the site publisher.\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[1] Content producer or originator ID. Useful if content is syndicated, and may be posted on a site using embed tags.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[2] Content producer or originator name (e.g., “Warner Bros”).\",\"default\":null},{\"name\":\"cat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[3] Array of IAB content categories for the content producer. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"domain\",\"type\":[\"null\",\"string\"],\"doc\":\"[4] URL of the content producer.\",\"default\":null}]}],\"doc\":\"[15] See Producer Object.\",\"default\":null},{\"name\":\"len\",\"type\":[\"null\",\"int\"],\"doc\":\"[16] Length of content (appropriate for video or audio) in seconds.\",\"default\":null},{\"name\":\"qagmediarating\",\"type\":[\"null\",\"int\"],\"doc\":\"[17] Media rating of the content, per QAG guidelines. See Table 0 QAG Media Ratings for list of possible values.\",\"default\":null},{\"name\":\"embeddable\",\"type\":[\"null\",\"int\"],\"doc\":\"[18] From QAG Video Addendum. If content can be embedded (such as an embeddable video player) this value should be set to “1”. If content cannot be embedded, then this should be set to “0”.\",\"default\":null},{\"name\":\"language\",\"type\":[\"null\",\"string\"],\"doc\":\"[19] Language of the content. Use alpha-2/ISO 639-1 codes.\",\"default\":null}]}],\"doc\":\"[12] See Content Object.\",\"default\":null},{\"name\":\"keywords\",\"type\":[\"null\",\"string\"],\"doc\":\"[13] List of keywords describing this site in a comma separated string.\",\"default\":null}]}],\"doc\":\"[03] See Site Object.\",\"default\":null},{\"name\":\"app\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"App\",\"doc\":\"3.3.6 App Object\\nAn “app” object should be included if the ad supported content is part of a mobile application (as opposed to a mobile website). A bid request must not contain both an “app” object and a “site” object.\\nThe app object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown. At a minimum, it’s useful to provide an App ID or bundle, but this is not strictly required.\\n\\nrequires:\\n com.adgear.avro.openrtb.Publisher\\n com.adgear.avro.openrtb.Content\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[01] Application ID on the exchange.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[02] Application name (may be masked at publisher’s request).\",\"default\":null},{\"name\":\"domain\",\"type\":[\"null\",\"string\"],\"doc\":\"[03] Domain of the application (e.g., “mygame.foo.com”).\",\"default\":null},{\"name\":\"cat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[04] Array of IAB content categories for the overall application. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"sectioncat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[05] Array of IAB content categories for the current subsection of the app. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"pagecat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[06] Array of IAB content categories for the current page/view of the app. See Table 6.1 Content Categories.\",\"default\":null},{\"name\":\"ver\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] Application version.\",\"default\":null},{\"name\":\"bundle\",\"type\":[\"null\",\"string\"],\"doc\":\"[08] Application bundle or package name (e.g., com.foo.mygame). This is intended to be a unique ID across multiple exchanges.\",\"default\":null},{\"name\":\"privacypolicy\",\"type\":[\"null\",\"int\"],\"doc\":\"[09] Specifies whether the app has a privacy policy. “1” means there is a policy and “0” means there is not.\",\"default\":null},{\"name\":\"paid\",\"type\":[\"null\",\"int\"],\"doc\":\"[10] “1” if the application is a paid version; else “0” (i.e., free).\",\"default\":null},{\"name\":\"publisher\",\"type\":[\"null\",\"Publisher\"],\"doc\":\"[11] See Publisher Object.\",\"default\":null},{\"name\":\"content\",\"type\":[\"null\",\"Content\"],\"doc\":\"[12] See Content Object.\",\"default\":null},{\"name\":\"keywords\",\"type\":[\"null\",\"string\"],\"doc\":\"[13] List of keywords describing this app in a comma separated string.\",\"default\":null},{\"name\":\"storeurl\",\"type\":[\"null\",\"string\"],\"doc\":\"[14] For QAG 1.5 compliance, an app store URL for an installed app should be passed in the bid request.\",\"default\":null}]}],\"doc\":\"[04] See App Object.\",\"default\":null},{\"name\":\"device\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Device\",\"doc\":\"3.3.10 Device Object\\nThe “device” object provides information pertaining to the device including its hardware, platform, location, and carrier. This device can refer to a mobile handset, a desktop computer, set top box or other digital device.\\nThe device object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\\nIn general, the most essential fields are either the IP address (to enable geo-lookup for the bidder), or providing geo information directly in the geo object.\\n\\nrequires:\\n com.adgear.avro.openrtb.Geo\",\"fields\":[{\"name\":\"dnt\",\"type\":[\"null\",\"int\"],\"doc\":\"[01] If “0”, then do not track Is set to false, if “1”, then do no track is set to true in browser.\",\"default\":null},{\"name\":\"ua\",\"type\":[\"null\",\"string\"],\"doc\":\"[02] Browser user agent string.\",\"default\":null},{\"name\":\"ip\",\"type\":[\"null\",\"string\"],\"doc\":\"[03] IPv4 address closest to device.\",\"default\":null},{\"name\":\"geo\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Geo\",\"doc\":\"3.3.11 Geo Object\\nThe geo object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\\nNote that the Geo Object may appear in one or both the Device Object and the User Object. This is intentional, since the information may be derived from either a device-oriented source (such as IP geo lookup), or by user registration information (for example provided to a publisher through a user registration). If the information is in conflict, it’s up to the bidder to determine which information to use.\",\"fields\":[{\"name\":\"lat\",\"type\":[\"null\",\"float\"],\"doc\":\"[01] Latitude from -90 to 90. South is negative. This should only be passed if known to be accurate (For example, not the centroid of a postal code).\",\"default\":null},{\"name\":\"lon\",\"type\":[\"null\",\"float\"],\"doc\":\"[02] Longitude from -180 to 180. West is negative. This should only be passed if known to be accurate.\",\"default\":null},{\"name\":\"country\",\"type\":[\"null\",\"string\"],\"doc\":\"[03] Country using ISO-3166-1 Alpha-3.\",\"default\":null},{\"name\":\"region\",\"type\":[\"null\",\"string\"],\"doc\":\"[04] Region using ISO 3166-2.\",\"default\":null},{\"name\":\"regionfips104\",\"type\":[\"null\",\"string\"],\"doc\":\"[05] Region of a country using FIPS 10-4 notation (alternative to ISO 3166-2).\",\"default\":null},{\"name\":\"metro\",\"type\":[\"null\",\"string\"],\"doc\":\"[06] Pass the metro code (seehttp://code.google.com/apis/adwords/docs/appendix/metrocodes.html). Metro codes are similar to but not exactly the same as Nielsen DMAs.\",\"default\":null},{\"name\":\"city\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] City using United Nations Code for Trade and Transport Locations (http://www.unece.org/cefact/locode/ser vice/location.htm).\",\"default\":null},{\"name\":\"zip\",\"type\":[\"null\",\"string\"],\"doc\":\"[08] Zip/postal code.\",\"default\":null},{\"name\":\"type\",\"type\":[\"null\",\"int\"],\"doc\":\"[09] Indicate the source of the geo data (GPS, IP address, user provided). See Table 6.15 Location Type for a list of potential values. Type should be provided when lat/lon is provided.\",\"default\":null}]}],\"doc\":\"[04] Geography as derived from the device’s location services (e.g., cell tower triangulation, GPS) or IP address. See Geo Object.\",\"default\":null},{\"name\":\"didsha1\",\"type\":[\"null\",\"string\"],\"doc\":\"[05] SHA1 hashed device ID; IMEI when available, else MEID or ESN. OpenRTB’s preferred method for device ID hashing is SHA1.\",\"default\":null},{\"name\":\"didmd5\",\"type\":[\"null\",\"string\"],\"doc\":\"[06] MD5 hashed device ID; IMEI when available, else MEID or ESN. Should be interpreted as case insensitive.\",\"default\":null},{\"name\":\"dpidsha1\",\"type\":[\"null\",\"string\"],\"doc\":\"[07] SHA1 hashed platform-specific ID (e.g., Android ID or UDID for iOS). OpenRTB’s preferred method for device ID hash is SHA1.\",\"default\":null},{\"name\":\"dpidmd5\",\"type\":[\"null\",\"string\"],\"doc\":\"[08] MD5 hashed platform-specific ID (e.g., Android ID or UDID for iOS). Should be interpreted as case insensitive.\",\"default\":null},{\"name\":\"macsha1\",\"type\":[\"null\",\"string\"],\"doc\":\"[09] SHA1 hashed MAC address of the device.\",\"default\":null},{\"name\":\"macmd5\",\"type\":[\"null\",\"string\"],\"doc\":\"[10] MD5 hashed MAC address of the device.\",\"default\":null},{\"name\":\"ipv6\",\"type\":[\"null\",\"string\"],\"doc\":\"[11] IP address in IPv6.\",\"default\":null},{\"name\":\"carrier\",\"type\":[\"null\",\"string\"],\"doc\":\"[12] Carrier or ISP derived from the IP address. Should be specified using Mobile Network Code (MNC) http://en.wikipedia.org/wiki/Mobile_Network_Code\",\"default\":null},{\"name\":\"language\",\"type\":[\"null\",\"string\"],\"doc\":\"[13] Browser language; use alpha-2/ISO 639-1 codes.\",\"default\":null},{\"name\":\"make\",\"type\":[\"null\",\"string\"],\"doc\":\"[14] Device make (e.g., “Apple”).\",\"default\":null},{\"name\":\"model\",\"type\":[\"null\",\"string\"],\"doc\":\"[15] Device model (e.g., “iPhone”).\",\"default\":null},{\"name\":\"os\",\"type\":[\"null\",\"string\"],\"doc\":\"[16] Device operating system (e.g., “iOS”).\",\"default\":null},{\"name\":\"osv\",\"type\":[\"null\",\"string\"],\"doc\":\"[17] Device operating system version (e.g., “3.1.2”).\",\"default\":null},{\"name\":\"js\",\"type\":[\"null\",\"int\"],\"doc\":\"[18] “1” if the device supports JavaScript; else “0”.\",\"default\":null},{\"name\":\"connectiontype\",\"type\":[\"null\",\"int\"],\"doc\":\"[19] Return the detected data connection type for the device. See Table 6.10 Connection Type.\",\"default\":null},{\"name\":\"devicetype\",\"type\":[\"null\",\"int\"],\"doc\":\"[20] Return the device type being used. See Table 6.16 Device Type.\",\"default\":null},{\"name\":\"flashver\",\"type\":[\"null\",\"string\"],\"doc\":\"[21] Return the Flash version detected.\",\"default\":null},{\"name\":\"ifa\",\"type\":[\"null\",\"string\"],\"doc\":\"[22] Native identifier for advertisers; an opaque ID assigned by the device or browser for use as an advertising identifier. (e.g. Apple's IFA, Android's Advertising ID, etc)\",\"default\":null}]}],\"doc\":\"[05] See Device Object.\",\"default\":null},{\"name\":\"user\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"User\",\"doc\":\"3.3.12 User Object\\nThe “user” object contains information known or derived about the human user of the device. Note that the user ID is an exchange artifact (refer to the “device” object for hardware or platform derived IDs) and may be subject to rotation policies. However, this user ID must be stable long enough to serve reasonably as the basis for frequency capping.\\nThe user object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\\nIf device ID is used as a proxy for unique user ID, use the device object.\\n\\nrequires:\\n com.adgear.avro.openrtb.Geo\\n com.adgear.avro.openrtb.Data\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[01] Unique consumer ID of this user on the exchange.\",\"default\":null},{\"name\":\"buyeruid\",\"type\":[\"null\",\"string\"],\"doc\":\"[02] Buyer’s user ID for this user as mapped by exchange for the buyer. (AdGear cookie)\",\"default\":null},{\"name\":\"yob\",\"type\":[\"null\",\"int\"],\"doc\":\"[03] Year of birth as a 4-digit integer.\",\"default\":null},{\"name\":\"gender\",\"type\":[\"null\",\"string\"],\"doc\":\"[04] Gender as “M” male, “F” female, “O” Other. (Null indicates unknown).\",\"default\":null},{\"name\":\"keywords\",\"type\":[\"null\",\"string\"],\"doc\":\"[05] Comma separated list of keywords of consumer interests or intent.\",\"default\":null},{\"name\":\"customdata\",\"type\":[\"null\",\"string\"],\"doc\":\"[06] If supported by the exchange, this is custom data that the bidder had stored in the exchange’s cookie. The string may be in base85 cookie safe characters, and be in any format. This may useful for storing user features. Note: Proper JSON encoding must be used to include “escaped” quotation marks.\",\"default\":null},{\"name\":\"geo\",\"type\":[\"null\",\"Geo\"],\"doc\":\"[07] Home geo for the user (e.g., based off of registration data); this is different from the current location of the access device (that is defined by the geo object embedded in the Device Object); see Geo Object.\",\"default\":null},{\"name\":\"data\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Data\",\"doc\":\"3.3.13 Data Object\\nThe data and segment objects together allow data about the user to be passed to bidders in the bid request. This data may be from multiple sources (e.g., the exchange itself, third party providers) as specified by the data object ID field. A bid request can mix data objects from multiple providers.\\nThe data object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\\n\\nrequires:\\n com.adgear.avro.openrtb.Segment\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[1] Exchange specific ID for the data provider.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[2] Data provider name.\",\"default\":null},{\"name\":\"segment\",\"type\":[\"null\",{\"type\":\"array\",\"items\":{\"type\":\"record\",\"name\":\"Segment\",\"doc\":\"3.3.14 Segment Object\\nThe data and segment objects together allow data about the user to be passed to bidders in the bid request. Segment objects convey specific units of information from the provider identified in the parent data object.\\nThe segment object itself and all of its parameters are optional, so default values are not provided; if an optional parameter is not specified, it should be considered unknown.\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"string\"],\"doc\":\"[1] ID of a data provider’s segment applicable to the user.\",\"default\":null},{\"name\":\"name\",\"type\":[\"null\",\"string\"],\"doc\":\"[2] Name of a data provider’s segment applicable to the user.\",\"default\":null},{\"name\":\"value\",\"type\":[\"null\",\"string\"],\"doc\":\"[3] String representing the value of the segment. The method for transmitting this data should be negotiated offline with the data provider. For example for gender, “male”, or “female”, for age, “30-40”).\",\"default\":null}]}}],\"doc\":\"[3] Array of segment objects.\",\"default\":null}]}}],\"doc\":\"[08] See Data Object.\",\"default\":null}]}],\"doc\":\"[06] See User Object.\",\"default\":null},{\"name\":\"at\",\"type\":\"int\",\"doc\":\"[07] Auction Type. If “1”, then first price auction. If “2”, then second price auction. Additional auction types can be defined as per the exchange’s business rules. Exchange specific rules should be numbered over 500.\",\"default\":2},{\"name\":\"tmax\",\"type\":[\"null\",\"int\"],\"doc\":\"[08] Maximum amount of time in milliseconds to submit a bid (e.g., 120 means the bidder has 120ms to submit a bid before the auction is complete). If this value never changes across an exchange, then the exchange can supply this information offline.\",\"default\":null},{\"name\":\"wseat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[09] Array of buyer seats allowed to bid on this auction. Seats are an optional feature of exchange. For example, [“4”,”34”,”82”,”A45”] indicates that only advertisers using these exchange seats are allowed to bid on the impressions in this auction.\",\"default\":null},{\"name\":\"allimps\",\"type\":\"int\",\"doc\":\"[10] Flag to indicate whether Exchange can verify that all impressions offered represent all of the impressions available in context (e.g., all impressions available on the web page; all impressions available for a video [pre, mid and postroll spots], etc.) to support road-blocking. A true value should only be passed if the exchange is aware of all impressions in context for the publisher. “0” means the exchange cannot verify, and “1” means that all impressions represent all impressions available.\",\"default\":0},{\"name\":\"cur\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[11] Array of allowed currencies for bids on this bid request using ISO-4217 alphabetic codes. If only one currency is used by the exchange, this parameter is not required.\",\"default\":null},{\"name\":\"bcat\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[12] Blocked Advertiser Categories. Note that there is no existing categorization / taxonomy of advertiser industries. However, as a substitute exchanges may decide to use IAB categories as an approximation (See Table 6.1 Content Categories)\",\"default\":null},{\"name\":\"badv\",\"type\":[\"null\",{\"type\":\"array\",\"items\":\"string\"}],\"doc\":\"[13] Array of strings of blocked top-level domains of advertisers. For example, {“company1.com”, “company2.com”}.\",\"default\":null},{\"name\":\"regs\",\"type\":[\"null\",{\"type\":\"record\",\"name\":\"Regulations\",\"doc\":\"3.3.15 Regulations Object\\nThe “regs” object contains any legal, governmental, or industry regulations that apply to the request.\\nThe first regulation added signal whether or not the request falls under the United States Federal Trade Commission’s regulations for the United States Children’s Online Privacy Protection Act (“COPPA”). See the COPPA appendix for details.\\nThe regs object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.\",\"fields\":[{\"name\":\"coppa\",\"type\":[\"null\",\"int\"],\"doc\":\"[1] Flag indicating whether or not this request falls under the COPPA regulations established by the USA FTC, where 0 = no, 1 = yes.\",\"default\":null}]}],\"doc\":\"[14] This object is a container for any legal, governmental or industry regulations in force for the request.\",\"default\":null}]}");
  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
  /** [01] Unique ID of the bid request, provided by the exchange. */
  @Deprecated public java.lang.CharSequence id;
  /** [02] Array of impression objects. Multiple impression auctions may be specified in a single bid request. At least one impression is required for a valid bid request. */
  @Deprecated public java.util.List imp;
  /** [03] See Site Object. */
  @Deprecated public com.adgear.avro.openrtb.Site site;
  /** [04] See App Object. */
  @Deprecated public com.adgear.avro.openrtb.App app;
  /** [05] See Device Object. */
  @Deprecated public com.adgear.avro.openrtb.Device device;
  /** [06] See User Object. */
  @Deprecated public com.adgear.avro.openrtb.User user;
  /** [07] Auction Type. If “1”, then first price auction. If “2”, then second price auction. Additional auction types can be defined as per the exchange’s business rules. Exchange specific rules should be numbered over 500. */
  @Deprecated public int at;
  /** [08] Maximum amount of time in milliseconds to submit a bid (e.g., 120 means the bidder has 120ms to submit a bid before the auction is complete). If this value never changes across an exchange, then the exchange can supply this information offline. */
  @Deprecated public java.lang.Integer tmax;
  /** [09] Array of buyer seats allowed to bid on this auction. Seats are an optional feature of exchange. For example, [“4”,”34”,”82”,”A45”] indicates that only advertisers using these exchange seats are allowed to bid on the impressions in this auction. */
  @Deprecated public java.util.List wseat;
  /** [10] Flag to indicate whether Exchange can verify that all impressions offered represent all of the impressions available in context (e.g., all impressions available on the web page; all impressions available for a video [pre, mid and postroll spots], etc.) to support road-blocking. A true value should only be passed if the exchange is aware of all impressions in context for the publisher. “0” means the exchange cannot verify, and “1” means that all impressions represent all impressions available. */
  @Deprecated public int allimps;
  /** [11] Array of allowed currencies for bids on this bid request using ISO-4217 alphabetic codes. If only one currency is used by the exchange, this parameter is not required. */
  @Deprecated public java.util.List cur;
  /** [12] Blocked Advertiser Categories. Note that there is no existing categorization / taxonomy of advertiser industries. However, as a substitute exchanges may decide to use IAB categories as an approximation (See Table 6.1 Content Categories) */
  @Deprecated public java.util.List bcat;
  /** [13] Array of strings of blocked top-level domains of advertisers. For example, {“company1.com”, “company2.com”}. */
  @Deprecated public java.util.List badv;
  /** [14] This object is a container for any legal, governmental or industry regulations in force for the request. */
  @Deprecated public com.adgear.avro.openrtb.Regulations regs;

  /**
   * Default constructor.
   */
  public BidRequest() {}

  /**
   * All-args constructor.
   */
  public BidRequest(java.lang.CharSequence id, java.util.List imp, com.adgear.avro.openrtb.Site site, com.adgear.avro.openrtb.App app, com.adgear.avro.openrtb.Device device, com.adgear.avro.openrtb.User user, java.lang.Integer at, java.lang.Integer tmax, java.util.List wseat, java.lang.Integer allimps, java.util.List cur, java.util.List bcat, java.util.List badv, com.adgear.avro.openrtb.Regulations regs) {
    this.id = id;
    this.imp = imp;
    this.site = site;
    this.app = app;
    this.device = device;
    this.user = user;
    this.at = at;
    this.tmax = tmax;
    this.wseat = wseat;
    this.allimps = allimps;
    this.cur = cur;
    this.bcat = bcat;
    this.badv = badv;
    this.regs = regs;
  }

  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
  // Used by DatumWriter.  Applications should not call. 
  public java.lang.Object get(int field$) {
    switch (field$) {
    case 0: return id;
    case 1: return imp;
    case 2: return site;
    case 3: return app;
    case 4: return device;
    case 5: return user;
    case 6: return at;
    case 7: return tmax;
    case 8: return wseat;
    case 9: return allimps;
    case 10: return cur;
    case 11: return bcat;
    case 12: return badv;
    case 13: return regs;
    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
    }
  }
  // Used by DatumReader.  Applications should not call. 
  @SuppressWarnings(value="unchecked")
  public void put(int field$, java.lang.Object value$) {
    switch (field$) {
    case 0: id = (java.lang.CharSequence)value$; break;
    case 1: imp = (java.util.List)value$; break;
    case 2: site = (com.adgear.avro.openrtb.Site)value$; break;
    case 3: app = (com.adgear.avro.openrtb.App)value$; break;
    case 4: device = (com.adgear.avro.openrtb.Device)value$; break;
    case 5: user = (com.adgear.avro.openrtb.User)value$; break;
    case 6: at = (java.lang.Integer)value$; break;
    case 7: tmax = (java.lang.Integer)value$; break;
    case 8: wseat = (java.util.List)value$; break;
    case 9: allimps = (java.lang.Integer)value$; break;
    case 10: cur = (java.util.List)value$; break;
    case 11: bcat = (java.util.List)value$; break;
    case 12: badv = (java.util.List)value$; break;
    case 13: regs = (com.adgear.avro.openrtb.Regulations)value$; break;
    default: throw new org.apache.avro.AvroRuntimeException("Bad index");
    }
  }

  /**
   * Gets the value of the 'id' field.
   * [01] Unique ID of the bid request, provided by the exchange.
   */
  public java.lang.CharSequence getId() {
    return id;
  }

  /**
   * Sets the value of the 'id' field.
   * [01] Unique ID of the bid request, provided by the exchange.
   * @param value the value to set.
   */
  public void setId(java.lang.CharSequence value) {
    this.id = value;
  }

  /**
   * Gets the value of the 'imp' field.
   * [02] Array of impression objects. Multiple impression auctions may be specified in a single bid request. At least one impression is required for a valid bid request.
   */
  public java.util.List getImp() {
    return imp;
  }

  /**
   * Sets the value of the 'imp' field.
   * [02] Array of impression objects. Multiple impression auctions may be specified in a single bid request. At least one impression is required for a valid bid request.
   * @param value the value to set.
   */
  public void setImp(java.util.List value) {
    this.imp = value;
  }

  /**
   * Gets the value of the 'site' field.
   * [03] See Site Object.
   */
  public com.adgear.avro.openrtb.Site getSite() {
    return site;
  }

  /**
   * Sets the value of the 'site' field.
   * [03] See Site Object.
   * @param value the value to set.
   */
  public void setSite(com.adgear.avro.openrtb.Site value) {
    this.site = value;
  }

  /**
   * Gets the value of the 'app' field.
   * [04] See App Object.
   */
  public com.adgear.avro.openrtb.App getApp() {
    return app;
  }

  /**
   * Sets the value of the 'app' field.
   * [04] See App Object.
   * @param value the value to set.
   */
  public void setApp(com.adgear.avro.openrtb.App value) {
    this.app = value;
  }

  /**
   * Gets the value of the 'device' field.
   * [05] See Device Object.
   */
  public com.adgear.avro.openrtb.Device getDevice() {
    return device;
  }

  /**
   * Sets the value of the 'device' field.
   * [05] See Device Object.
   * @param value the value to set.
   */
  public void setDevice(com.adgear.avro.openrtb.Device value) {
    this.device = value;
  }

  /**
   * Gets the value of the 'user' field.
   * [06] See User Object.
   */
  public com.adgear.avro.openrtb.User getUser() {
    return user;
  }

  /**
   * Sets the value of the 'user' field.
   * [06] See User Object.
   * @param value the value to set.
   */
  public void setUser(com.adgear.avro.openrtb.User value) {
    this.user = value;
  }

  /**
   * Gets the value of the 'at' field.
   * [07] Auction Type. If “1”, then first price auction. If “2”, then second price auction. Additional auction types can be defined as per the exchange’s business rules. Exchange specific rules should be numbered over 500.
   */
  public java.lang.Integer getAt() {
    return at;
  }

  /**
   * Sets the value of the 'at' field.
   * [07] Auction Type. If “1”, then first price auction. If “2”, then second price auction. Additional auction types can be defined as per the exchange’s business rules. Exchange specific rules should be numbered over 500.
   * @param value the value to set.
   */
  public void setAt(java.lang.Integer value) {
    this.at = value;
  }

  /**
   * Gets the value of the 'tmax' field.
   * [08] Maximum amount of time in milliseconds to submit a bid (e.g., 120 means the bidder has 120ms to submit a bid before the auction is complete). If this value never changes across an exchange, then the exchange can supply this information offline.
   */
  public java.lang.Integer getTmax() {
    return tmax;
  }

  /**
   * Sets the value of the 'tmax' field.
   * [08] Maximum amount of time in milliseconds to submit a bid (e.g., 120 means the bidder has 120ms to submit a bid before the auction is complete). If this value never changes across an exchange, then the exchange can supply this information offline.
   * @param value the value to set.
   */
  public void setTmax(java.lang.Integer value) {
    this.tmax = value;
  }

  /**
   * Gets the value of the 'wseat' field.
   * [09] Array of buyer seats allowed to bid on this auction. Seats are an optional feature of exchange. For example, [“4”,”34”,”82”,”A45”] indicates that only advertisers using these exchange seats are allowed to bid on the impressions in this auction.
   */
  public java.util.List getWseat() {
    return wseat;
  }

  /**
   * Sets the value of the 'wseat' field.
   * [09] Array of buyer seats allowed to bid on this auction. Seats are an optional feature of exchange. For example, [“4”,”34”,”82”,”A45”] indicates that only advertisers using these exchange seats are allowed to bid on the impressions in this auction.
   * @param value the value to set.
   */
  public void setWseat(java.util.List value) {
    this.wseat = value;
  }

  /**
   * Gets the value of the 'allimps' field.
   * [10] Flag to indicate whether Exchange can verify that all impressions offered represent all of the impressions available in context (e.g., all impressions available on the web page; all impressions available for a video [pre, mid and postroll spots], etc.) to support road-blocking. A true value should only be passed if the exchange is aware of all impressions in context for the publisher. “0” means the exchange cannot verify, and “1” means that all impressions represent all impressions available.
   */
  public java.lang.Integer getAllimps() {
    return allimps;
  }

  /**
   * Sets the value of the 'allimps' field.
   * [10] Flag to indicate whether Exchange can verify that all impressions offered represent all of the impressions available in context (e.g., all impressions available on the web page; all impressions available for a video [pre, mid and postroll spots], etc.) to support road-blocking. A true value should only be passed if the exchange is aware of all impressions in context for the publisher. “0” means the exchange cannot verify, and “1” means that all impressions represent all impressions available.
   * @param value the value to set.
   */
  public void setAllimps(java.lang.Integer value) {
    this.allimps = value;
  }

  /**
   * Gets the value of the 'cur' field.
   * [11] Array of allowed currencies for bids on this bid request using ISO-4217 alphabetic codes. If only one currency is used by the exchange, this parameter is not required.
   */
  public java.util.List getCur() {
    return cur;
  }

  /**
   * Sets the value of the 'cur' field.
   * [11] Array of allowed currencies for bids on this bid request using ISO-4217 alphabetic codes. If only one currency is used by the exchange, this parameter is not required.
   * @param value the value to set.
   */
  public void setCur(java.util.List value) {
    this.cur = value;
  }

  /**
   * Gets the value of the 'bcat' field.
   * [12] Blocked Advertiser Categories. Note that there is no existing categorization / taxonomy of advertiser industries. However, as a substitute exchanges may decide to use IAB categories as an approximation (See Table 6.1 Content Categories)
   */
  public java.util.List getBcat() {
    return bcat;
  }

  /**
   * Sets the value of the 'bcat' field.
   * [12] Blocked Advertiser Categories. Note that there is no existing categorization / taxonomy of advertiser industries. However, as a substitute exchanges may decide to use IAB categories as an approximation (See Table 6.1 Content Categories)
   * @param value the value to set.
   */
  public void setBcat(java.util.List value) {
    this.bcat = value;
  }

  /**
   * Gets the value of the 'badv' field.
   * [13] Array of strings of blocked top-level domains of advertisers. For example, {“company1.com”, “company2.com”}.
   */
  public java.util.List getBadv() {
    return badv;
  }

  /**
   * Sets the value of the 'badv' field.
   * [13] Array of strings of blocked top-level domains of advertisers. For example, {“company1.com”, “company2.com”}.
   * @param value the value to set.
   */
  public void setBadv(java.util.List value) {
    this.badv = value;
  }

  /**
   * Gets the value of the 'regs' field.
   * [14] This object is a container for any legal, governmental or industry regulations in force for the request.
   */
  public com.adgear.avro.openrtb.Regulations getRegs() {
    return regs;
  }

  /**
   * Sets the value of the 'regs' field.
   * [14] This object is a container for any legal, governmental or industry regulations in force for the request.
   * @param value the value to set.
   */
  public void setRegs(com.adgear.avro.openrtb.Regulations value) {
    this.regs = value;
  }

  /** Creates a new BidRequest RecordBuilder */
  public static com.adgear.avro.openrtb.BidRequest.Builder newBuilder() {
    return new com.adgear.avro.openrtb.BidRequest.Builder();
  }
  
  /** Creates a new BidRequest RecordBuilder by copying an existing Builder */
  public static com.adgear.avro.openrtb.BidRequest.Builder newBuilder(com.adgear.avro.openrtb.BidRequest.Builder other) {
    return new com.adgear.avro.openrtb.BidRequest.Builder(other);
  }
  
  /** Creates a new BidRequest RecordBuilder by copying an existing BidRequest instance */
  public static com.adgear.avro.openrtb.BidRequest.Builder newBuilder(com.adgear.avro.openrtb.BidRequest other) {
    return new com.adgear.avro.openrtb.BidRequest.Builder(other);
  }

  /**
   * RecordBuilder for BidRequest instances.
   */
  public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase
    implements org.apache.avro.data.RecordBuilder {

    private java.lang.CharSequence id;
    private java.util.List imp;
    private com.adgear.avro.openrtb.Site site;
    private com.adgear.avro.openrtb.App app;
    private com.adgear.avro.openrtb.Device device;
    private com.adgear.avro.openrtb.User user;
    private int at;
    private java.lang.Integer tmax;
    private java.util.List wseat;
    private int allimps;
    private java.util.List cur;
    private java.util.List bcat;
    private java.util.List badv;
    private com.adgear.avro.openrtb.Regulations regs;

    /** Creates a new Builder */
    private Builder() {
      super(com.adgear.avro.openrtb.BidRequest.SCHEMA$);
    }
    
    /** Creates a Builder by copying an existing Builder */
    private Builder(com.adgear.avro.openrtb.BidRequest.Builder other) {
      super(other);
    }
    
    /** Creates a Builder by copying an existing BidRequest instance */
    private Builder(com.adgear.avro.openrtb.BidRequest other) {
      super(com.adgear.avro.openrtb.BidRequest.SCHEMA$);
      if (isValidValue(fields()[0], other.id)) {
        this.id = data().deepCopy(fields()[0].schema(), other.id);
        fieldSetFlags()[0] = true;
      }
      if (isValidValue(fields()[1], other.imp)) {
        this.imp = data().deepCopy(fields()[1].schema(), other.imp);
        fieldSetFlags()[1] = true;
      }
      if (isValidValue(fields()[2], other.site)) {
        this.site = data().deepCopy(fields()[2].schema(), other.site);
        fieldSetFlags()[2] = true;
      }
      if (isValidValue(fields()[3], other.app)) {
        this.app = data().deepCopy(fields()[3].schema(), other.app);
        fieldSetFlags()[3] = true;
      }
      if (isValidValue(fields()[4], other.device)) {
        this.device = data().deepCopy(fields()[4].schema(), other.device);
        fieldSetFlags()[4] = true;
      }
      if (isValidValue(fields()[5], other.user)) {
        this.user = data().deepCopy(fields()[5].schema(), other.user);
        fieldSetFlags()[5] = true;
      }
      if (isValidValue(fields()[6], other.at)) {
        this.at = data().deepCopy(fields()[6].schema(), other.at);
        fieldSetFlags()[6] = true;
      }
      if (isValidValue(fields()[7], other.tmax)) {
        this.tmax = data().deepCopy(fields()[7].schema(), other.tmax);
        fieldSetFlags()[7] = true;
      }
      if (isValidValue(fields()[8], other.wseat)) {
        this.wseat = data().deepCopy(fields()[8].schema(), other.wseat);
        fieldSetFlags()[8] = true;
      }
      if (isValidValue(fields()[9], other.allimps)) {
        this.allimps = data().deepCopy(fields()[9].schema(), other.allimps);
        fieldSetFlags()[9] = true;
      }
      if (isValidValue(fields()[10], other.cur)) {
        this.cur = data().deepCopy(fields()[10].schema(), other.cur);
        fieldSetFlags()[10] = true;
      }
      if (isValidValue(fields()[11], other.bcat)) {
        this.bcat = data().deepCopy(fields()[11].schema(), other.bcat);
        fieldSetFlags()[11] = true;
      }
      if (isValidValue(fields()[12], other.badv)) {
        this.badv = data().deepCopy(fields()[12].schema(), other.badv);
        fieldSetFlags()[12] = true;
      }
      if (isValidValue(fields()[13], other.regs)) {
        this.regs = data().deepCopy(fields()[13].schema(), other.regs);
        fieldSetFlags()[13] = true;
      }
    }

    /** Gets the value of the 'id' field */
    public java.lang.CharSequence getId() {
      return id;
    }

    /** Sets the value of the 'id' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setId(java.lang.CharSequence value) {
      validate(fields()[0], value);
      this.id = value;
      fieldSetFlags()[0] = true;
      return this; 
    }
    
    /** Checks whether the 'id' field has been set */
    public boolean hasId() {
      return fieldSetFlags()[0];
    }
    
    /** Clears the value of the 'id' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearId() {
      id = null;
      fieldSetFlags()[0] = false;
      return this;
    }

    /** Gets the value of the 'imp' field */
    public java.util.List getImp() {
      return imp;
    }

    /** Sets the value of the 'imp' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setImp(java.util.List value) {
      validate(fields()[1], value);
      this.imp = value;
      fieldSetFlags()[1] = true;
      return this; 
    }
    
    /** Checks whether the 'imp' field has been set */
    public boolean hasImp() {
      return fieldSetFlags()[1];
    }
    
    /** Clears the value of the 'imp' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearImp() {
      imp = null;
      fieldSetFlags()[1] = false;
      return this;
    }

    /** Gets the value of the 'site' field */
    public com.adgear.avro.openrtb.Site getSite() {
      return site;
    }

    /** Sets the value of the 'site' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setSite(com.adgear.avro.openrtb.Site value) {
      validate(fields()[2], value);
      this.site = value;
      fieldSetFlags()[2] = true;
      return this; 
    }
    
    /** Checks whether the 'site' field has been set */
    public boolean hasSite() {
      return fieldSetFlags()[2];
    }
    
    /** Clears the value of the 'site' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearSite() {
      site = null;
      fieldSetFlags()[2] = false;
      return this;
    }

    /** Gets the value of the 'app' field */
    public com.adgear.avro.openrtb.App getApp() {
      return app;
    }

    /** Sets the value of the 'app' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setApp(com.adgear.avro.openrtb.App value) {
      validate(fields()[3], value);
      this.app = value;
      fieldSetFlags()[3] = true;
      return this; 
    }
    
    /** Checks whether the 'app' field has been set */
    public boolean hasApp() {
      return fieldSetFlags()[3];
    }
    
    /** Clears the value of the 'app' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearApp() {
      app = null;
      fieldSetFlags()[3] = false;
      return this;
    }

    /** Gets the value of the 'device' field */
    public com.adgear.avro.openrtb.Device getDevice() {
      return device;
    }

    /** Sets the value of the 'device' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setDevice(com.adgear.avro.openrtb.Device value) {
      validate(fields()[4], value);
      this.device = value;
      fieldSetFlags()[4] = true;
      return this; 
    }
    
    /** Checks whether the 'device' field has been set */
    public boolean hasDevice() {
      return fieldSetFlags()[4];
    }
    
    /** Clears the value of the 'device' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearDevice() {
      device = null;
      fieldSetFlags()[4] = false;
      return this;
    }

    /** Gets the value of the 'user' field */
    public com.adgear.avro.openrtb.User getUser() {
      return user;
    }

    /** Sets the value of the 'user' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setUser(com.adgear.avro.openrtb.User value) {
      validate(fields()[5], value);
      this.user = value;
      fieldSetFlags()[5] = true;
      return this; 
    }
    
    /** Checks whether the 'user' field has been set */
    public boolean hasUser() {
      return fieldSetFlags()[5];
    }
    
    /** Clears the value of the 'user' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearUser() {
      user = null;
      fieldSetFlags()[5] = false;
      return this;
    }

    /** Gets the value of the 'at' field */
    public java.lang.Integer getAt() {
      return at;
    }

    /** Sets the value of the 'at' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setAt(int value) {
      validate(fields()[6], value);
      this.at = value;
      fieldSetFlags()[6] = true;
      return this; 
    }
    
    /** Checks whether the 'at' field has been set */
    public boolean hasAt() {
      return fieldSetFlags()[6];
    }
    
    /** Clears the value of the 'at' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearAt() {
      fieldSetFlags()[6] = false;
      return this;
    }

    /** Gets the value of the 'tmax' field */
    public java.lang.Integer getTmax() {
      return tmax;
    }

    /** Sets the value of the 'tmax' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setTmax(java.lang.Integer value) {
      validate(fields()[7], value);
      this.tmax = value;
      fieldSetFlags()[7] = true;
      return this; 
    }
    
    /** Checks whether the 'tmax' field has been set */
    public boolean hasTmax() {
      return fieldSetFlags()[7];
    }
    
    /** Clears the value of the 'tmax' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearTmax() {
      tmax = null;
      fieldSetFlags()[7] = false;
      return this;
    }

    /** Gets the value of the 'wseat' field */
    public java.util.List getWseat() {
      return wseat;
    }

    /** Sets the value of the 'wseat' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setWseat(java.util.List value) {
      validate(fields()[8], value);
      this.wseat = value;
      fieldSetFlags()[8] = true;
      return this; 
    }
    
    /** Checks whether the 'wseat' field has been set */
    public boolean hasWseat() {
      return fieldSetFlags()[8];
    }
    
    /** Clears the value of the 'wseat' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearWseat() {
      wseat = null;
      fieldSetFlags()[8] = false;
      return this;
    }

    /** Gets the value of the 'allimps' field */
    public java.lang.Integer getAllimps() {
      return allimps;
    }

    /** Sets the value of the 'allimps' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setAllimps(int value) {
      validate(fields()[9], value);
      this.allimps = value;
      fieldSetFlags()[9] = true;
      return this; 
    }
    
    /** Checks whether the 'allimps' field has been set */
    public boolean hasAllimps() {
      return fieldSetFlags()[9];
    }
    
    /** Clears the value of the 'allimps' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearAllimps() {
      fieldSetFlags()[9] = false;
      return this;
    }

    /** Gets the value of the 'cur' field */
    public java.util.List getCur() {
      return cur;
    }

    /** Sets the value of the 'cur' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setCur(java.util.List value) {
      validate(fields()[10], value);
      this.cur = value;
      fieldSetFlags()[10] = true;
      return this; 
    }
    
    /** Checks whether the 'cur' field has been set */
    public boolean hasCur() {
      return fieldSetFlags()[10];
    }
    
    /** Clears the value of the 'cur' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearCur() {
      cur = null;
      fieldSetFlags()[10] = false;
      return this;
    }

    /** Gets the value of the 'bcat' field */
    public java.util.List getBcat() {
      return bcat;
    }

    /** Sets the value of the 'bcat' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setBcat(java.util.List value) {
      validate(fields()[11], value);
      this.bcat = value;
      fieldSetFlags()[11] = true;
      return this; 
    }
    
    /** Checks whether the 'bcat' field has been set */
    public boolean hasBcat() {
      return fieldSetFlags()[11];
    }
    
    /** Clears the value of the 'bcat' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearBcat() {
      bcat = null;
      fieldSetFlags()[11] = false;
      return this;
    }

    /** Gets the value of the 'badv' field */
    public java.util.List getBadv() {
      return badv;
    }

    /** Sets the value of the 'badv' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setBadv(java.util.List value) {
      validate(fields()[12], value);
      this.badv = value;
      fieldSetFlags()[12] = true;
      return this; 
    }
    
    /** Checks whether the 'badv' field has been set */
    public boolean hasBadv() {
      return fieldSetFlags()[12];
    }
    
    /** Clears the value of the 'badv' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearBadv() {
      badv = null;
      fieldSetFlags()[12] = false;
      return this;
    }

    /** Gets the value of the 'regs' field */
    public com.adgear.avro.openrtb.Regulations getRegs() {
      return regs;
    }

    /** Sets the value of the 'regs' field */
    public com.adgear.avro.openrtb.BidRequest.Builder setRegs(com.adgear.avro.openrtb.Regulations value) {
      validate(fields()[13], value);
      this.regs = value;
      fieldSetFlags()[13] = true;
      return this; 
    }
    
    /** Checks whether the 'regs' field has been set */
    public boolean hasRegs() {
      return fieldSetFlags()[13];
    }
    
    /** Clears the value of the 'regs' field */
    public com.adgear.avro.openrtb.BidRequest.Builder clearRegs() {
      regs = null;
      fieldSetFlags()[13] = false;
      return this;
    }

    @Override
    public BidRequest build() {
      try {
        BidRequest record = new BidRequest();
        record.id = fieldSetFlags()[0] ? this.id : (java.lang.CharSequence) defaultValue(fields()[0]);
        record.imp = fieldSetFlags()[1] ? this.imp : (java.util.List) defaultValue(fields()[1]);
        record.site = fieldSetFlags()[2] ? this.site : (com.adgear.avro.openrtb.Site) defaultValue(fields()[2]);
        record.app = fieldSetFlags()[3] ? this.app : (com.adgear.avro.openrtb.App) defaultValue(fields()[3]);
        record.device = fieldSetFlags()[4] ? this.device : (com.adgear.avro.openrtb.Device) defaultValue(fields()[4]);
        record.user = fieldSetFlags()[5] ? this.user : (com.adgear.avro.openrtb.User) defaultValue(fields()[5]);
        record.at = fieldSetFlags()[6] ? this.at : (java.lang.Integer) defaultValue(fields()[6]);
        record.tmax = fieldSetFlags()[7] ? this.tmax : (java.lang.Integer) defaultValue(fields()[7]);
        record.wseat = fieldSetFlags()[8] ? this.wseat : (java.util.List) defaultValue(fields()[8]);
        record.allimps = fieldSetFlags()[9] ? this.allimps : (java.lang.Integer) defaultValue(fields()[9]);
        record.cur = fieldSetFlags()[10] ? this.cur : (java.util.List) defaultValue(fields()[10]);
        record.bcat = fieldSetFlags()[11] ? this.bcat : (java.util.List) defaultValue(fields()[11]);
        record.badv = fieldSetFlags()[12] ? this.badv : (java.util.List) defaultValue(fields()[12]);
        record.regs = fieldSetFlags()[13] ? this.regs : (com.adgear.avro.openrtb.Regulations) defaultValue(fields()[13]);
        return record;
      } catch (Exception e) {
        throw new org.apache.avro.AvroRuntimeException(e);
      }
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy