<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="walletobjects_v1.html">Google Wallet API</a> . <a href="walletobjects_v1.flightclass.html">flightclass</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#addmessage">addmessage(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Adds a message to the flight class referenced by the given class ID.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(resourceId, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the flight class with the given class ID.</p>
<p class="toc_element">
  <code><a href="#insert">insert(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Inserts an flight class with the given ID and properties.</p>
<p class="toc_element">
  <code><a href="#list">list(issuerId=None, maxResults=None, token=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a list of all flight classes for a given issuer ID.</p>
<p class="toc_element">
  <code><a href="#patch">patch(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the flight class referenced by the given class ID. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(resourceId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the flight class referenced by the given class ID.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="addmessage">addmessage(resourceId, body=None, x__xgafv=None)</code>
  <pre>Adds a message to the flight class referenced by the given class ID.

Args:
  resourceId: string, The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{ # Resource used when the AddMessage endpoints are called.
  &quot;message&quot;: { # A message that will be displayed with a Valuable
    &quot;body&quot;: &quot;A String&quot;, # The message body.
    &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
      &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
      &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
        &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
      },
    },
    &quot;header&quot;: &quot;A String&quot;, # The message header.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
    &quot;localizedBody&quot;: { # Translated strings for the message body.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;localizedHeader&quot;: { # Translated strings for the message header.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;resource&quot;: { # The updated FlightClass resource.
    &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
    &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
      &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
      &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
    },
    &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
      &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
      &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
    },
    &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
      &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
        &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
        &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
          &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;cardTemplateOverride&quot;: { # Override for the card view.
        &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
          {
            &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
            &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
              &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
              &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          },
        ],
      },
      &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
        &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
          {
            &quot;item&quot;: { # The item to be displayed in the details list.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        ],
      },
      &quot;listTemplateOverride&quot;: { # Override for the passes list view.
        &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
          &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;transitOption&quot;: &quot;A String&quot;,
        },
        &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
    &quot;destination&quot;: { # Required. Destination airport.
      &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
      &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
      &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
    },
    &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
      &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
        &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
        &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
        &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
      &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
      &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
      &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
        &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
        &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
        &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
        &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
      &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
    },
    &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
    &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
    &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
    &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
      &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
      &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
    },
    &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
    &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
      {
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
        &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
          &quot;contentDescription&quot;: { # Description of the image used for accessibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
          &quot;sourceUri&quot;: { # The URI for the image.
            &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
            &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
          },
        },
      },
    ],
    &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
      &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
        {
          &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
            { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
              &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            },
          ],
        },
      ],
      &quot;showLastUpdateTime&quot;: True or False,
    },
    &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
    &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
    &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
      &quot;uris&quot;: [ # The list of URIs.
        {
          &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
          &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
        },
      ],
    },
    &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
    &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
    &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
    &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
    &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
    &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
    &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
        &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
        &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
      },
    ],
    &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
      { # A message that will be displayed with a Valuable
        &quot;body&quot;: &quot;A String&quot;, # The message body.
        &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
          &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
          &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
            &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
          },
        },
        &quot;header&quot;: &quot;A String&quot;, # The message header.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
        &quot;localizedBody&quot;: { # Translated strings for the message body.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the message header.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
      },
    ],
    &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
    &quot;origin&quot;: { # Required. Origin airport.
      &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
      &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
      &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
    },
    &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
      &quot;A String&quot;,
    ],
    &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
      &quot;comments&quot;: &quot;A String&quot;,
    },
    &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
    &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
      &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
    },
    &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
      { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
        &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
        &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
      },
    ],
    &quot;version&quot;: &quot;A String&quot;, # Deprecated
    &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
    &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
      &quot;contentDescription&quot;: { # Description of the image used for accessibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
      &quot;sourceUri&quot;: { # The URI for the image.
        &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
        &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
      },
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(resourceId, x__xgafv=None)</code>
  <pre>Returns the flight class with the given class ID.

Args:
  resourceId: string, The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body=None, x__xgafv=None)</code>
  <pre>Inserts an flight class with the given ID and properties.

Args:
  body: object, The request body.
    The object takes the form of:

{
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(issuerId=None, maxResults=None, token=None, x__xgafv=None)</code>
  <pre>Returns a list of all flight classes for a given issuer ID.

Args:
  issuerId: string, The ID of the issuer authorized to list classes.
  maxResults: integer, Identifies the max number of results returned by a list. All results are returned if `maxResults` isn&#x27;t defined.
  token: string, Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;pagination&quot;: { # Pagination of the response.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#pagination&quot;`.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token to send to fetch the next page.
    &quot;resultsPerPage&quot;: 42, # Number of results returned in this page.
  },
  &quot;resources&quot;: [ # Resources corresponding to the list request.
    {
      &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
      &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
        &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
        &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
      },
      &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
        &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
        &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
      },
      &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
        &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
          &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
          &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
          &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
            &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
        &quot;cardTemplateOverride&quot;: { # Override for the card view.
          &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
            {
              &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
              &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
              &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
                &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
                &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
                  &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                  &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                  &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                    &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                      { # Reference definition to use with field overrides.
                        &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                        &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                      },
                    ],
                  },
                },
              },
            },
          ],
        },
        &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
          &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
            {
              &quot;item&quot;: { # The item to be displayed in the details list.
                &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
                &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
                &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                  &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                    { # Reference definition to use with field overrides.
                      &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                      &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                    },
                  ],
                },
              },
            },
          ],
        },
        &quot;listTemplateOverride&quot;: { # Override for the passes list view.
          &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
            &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;transitOption&quot;: &quot;A String&quot;,
          },
          &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
          &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
            &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
              { # Reference definition to use with field overrides.
                &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
              },
            ],
          },
        },
      },
      &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
      &quot;destination&quot;: { # Required. Destination airport.
        &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
        &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
        &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
      },
      &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
      &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
        &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
          &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
          &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
          &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
        },
        &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
        &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
        &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
          &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
          &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
          &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
          &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
        },
        &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
      },
      &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
      &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
      &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
      &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
      &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
        {
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
          &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
            &quot;contentDescription&quot;: { # Description of the image used for accessibility.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
            &quot;sourceUri&quot;: { # The URI for the image.
              &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
              &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
                &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                &quot;translatedValues&quot;: [ # Contains the translations for the string.
                  {
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                ],
              },
              &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
            },
          },
        },
      ],
      &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
        &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
          {
            &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
              { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
                &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
                  &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                    &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                    &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                  },
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
                  &quot;translatedValues&quot;: [ # Contains the translations for the string.
                    {
                      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                    },
                  ],
                },
                &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              },
            ],
          },
        ],
        &quot;showLastUpdateTime&quot;: True or False,
      },
      &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
      &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
        &quot;uris&quot;: [ # The list of URIs.
          {
            &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
            &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
            &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
          },
        ],
      },
      &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
      &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
      &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
      &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
      &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
      &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
      &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
          &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
          &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
        },
      ],
      &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
        { # A message that will be displayed with a Valuable
          &quot;body&quot;: &quot;A String&quot;, # The message body.
          &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
            &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
            &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
              &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
            },
          },
          &quot;header&quot;: &quot;A String&quot;, # The message header.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
          &quot;localizedBody&quot;: { # Translated strings for the message body.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the message header.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
        },
      ],
      &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
      &quot;origin&quot;: { # Required. Origin airport.
        &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
        &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
        &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
      },
      &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
        &quot;A String&quot;,
      ],
      &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
        &quot;comments&quot;: &quot;A String&quot;,
      },
      &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
      &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
        &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
      },
      &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
        { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
          &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
          &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
          &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
          &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
        },
      ],
      &quot;version&quot;: &quot;A String&quot;, # Deprecated
      &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
      &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the flight class referenced by the given class ID. This method supports patch semantics.

Args:
  resourceId: string, The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(resourceId, body=None, x__xgafv=None)</code>
  <pre>Updates the flight class referenced by the given class ID.

Args:
  resourceId: string, The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;allowMultipleUsersPerObject&quot;: True or False, # Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.
  &quot;boardingAndSeatingPolicy&quot;: { # Policies for boarding and seating. These will inform which labels will be shown to users.
    &quot;boardingPolicy&quot;: &quot;A String&quot;, # Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#boardingAndSeatingPolicy&quot;`.
    &quot;seatClassPolicy&quot;: &quot;A String&quot;, # Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.
  },
  &quot;callbackOptions&quot;: { # Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback.
    &quot;updateRequestUrl&quot;: &quot;A String&quot;, # URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.
    &quot;url&quot;: &quot;A String&quot;, # The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.
  },
  &quot;classTemplateInfo&quot;: { # Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display.
    &quot;cardBarcodeSectionDetails&quot;: { # Specifies extra information to be displayed above and below the barcode.
      &quot;firstBottomDetail&quot;: { # Optional information to display below the barcode.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;firstTopDetail&quot;: { # Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
      &quot;secondTopDetail&quot;: { # Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section.
        &quot;fieldSelector&quot;: { # Custom field selector to use with field overrides. # A reference to an existing text-based or image field to display.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
      },
    },
    &quot;cardTemplateOverride&quot;: { # Override for the card view.
      &quot;cardRowTemplateInfos&quot;: [ # Template information for rows in the card view. At most three rows are allowed to be specified.
        {
          &quot;oneItem&quot;: { # Template for a row containing one item. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;item&quot;: { # The item to be displayed in the row. This item will be automatically centered.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;threeItems&quot;: { # Template for a row containing three items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;middleItem&quot;: { # The item to be displayed in the middle of the row. This item will be centered between the start and end items.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
          &quot;twoItems&quot;: { # Template for a row containing two items. Exactly one of &quot;one_item&quot;, &quot;two_items&quot;, &quot;three_items&quot; must be set.
            &quot;endItem&quot;: { # The item to be displayed at the end of the row. This item will be aligned to the right.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
            &quot;startItem&quot;: { # The item to be displayed at the start of the row. This item will be aligned to the left.
              &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
              &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
              &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
                &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                  { # Reference definition to use with field overrides.
                    &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                    &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                  },
                ],
              },
            },
          },
        },
      ],
    },
    &quot;detailsTemplateOverride&quot;: { # Override for the details view (beneath the card view).
      &quot;detailsItemInfos&quot;: [ # Information for the &quot;nth&quot; item displayed in the details list.
        {
          &quot;item&quot;: { # The item to be displayed in the details list.
            &quot;firstValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as &quot;A / B&quot;.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
            &quot;predefinedItem&quot;: &quot;A String&quot;, # A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
            &quot;secondValue&quot;: { # Custom field selector to use with field overrides. # A reference to a field to display. This may only be populated if the `firstValue` field is populated.
              &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
                { # Reference definition to use with field overrides.
                  &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
                  &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
                },
              ],
            },
          },
        },
      ],
    },
    &quot;listTemplateOverride&quot;: { # Override for the passes list view.
      &quot;firstRowOption&quot;: { # Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row.
        &quot;fieldOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the first row.
          &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
            { # Reference definition to use with field overrides.
              &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
              &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
            },
          ],
        },
        &quot;transitOption&quot;: &quot;A String&quot;,
      },
      &quot;secondRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects.
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
      &quot;thirdRowOption&quot;: { # Custom field selector to use with field overrides. # A reference to the field to be displayed in the third row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the third row will always display the number of objects in the group. Eg: &quot;3 passes&quot;
        &quot;fields&quot;: [ # If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
          { # Reference definition to use with field overrides.
            &quot;dateFormat&quot;: &quot;A String&quot;, # Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
            &quot;fieldPath&quot;: &quot;A String&quot;, # Path to the field being referenced, prefixed with &quot;object&quot; or &quot;class&quot; and separated with dots. For example, it may be the string &quot;object.purchaseDetails.purchasePrice&quot;.
          },
        ],
      },
    },
  },
  &quot;countryCode&quot;: &quot;A String&quot;, # Country code used to display the card&#x27;s country (when the user is not in that country), as well as to display localized content when content is not available in the user&#x27;s locale.
  &quot;destination&quot;: { # Required. Destination airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;enableSmartTap&quot;: True or False, # Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
  &quot;flightHeader&quot;: { # Required. Information about the flight carrier and number.
    &quot;carrier&quot;: { # Information about airline carrier. This is a required property of `flightHeader`.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;flightNumber&quot;: &quot;A String&quot;, # The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: &quot;123&quot;
    &quot;flightNumberDisplayOverride&quot;: &quot;A String&quot;, # Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: &quot;XX1234 / YY576&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightHeader&quot;`.
    &quot;operatingCarrier&quot;: { # Information about operating airline carrier.
      &quot;airlineAllianceLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline alliance, displayed above the QR code that the passenger scans to board.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
      &quot;airlineName&quot;: { # A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: &quot;Swiss Air&quot; for &quot;LX&quot;
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;carrierIataCode&quot;: &quot;A String&quot;, # Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;LX&quot; for Swiss Air
      &quot;carrierIcaoCode&quot;: &quot;A String&quot;, # Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: &quot;EZY&quot; for Easy Jet
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightCarrier&quot;`.
      &quot;wideAirlineLogo&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
    &quot;operatingFlightNumber&quot;: &quot;A String&quot;, # The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: &quot;234&quot;
  },
  &quot;flightStatus&quot;: &quot;A String&quot;, # Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.
  &quot;heroImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
  &quot;hexBackgroundColor&quot;: &quot;A String&quot;, # The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.
  &quot;homepageUri&quot;: { # The URI of your application&#x27;s home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object).
    &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
    &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
    &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
  },
  &quot;id&quot;: &quot;A String&quot;, # Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, &#x27;.&#x27;, &#x27;_&#x27;, or &#x27;-&#x27;.
  &quot;imageModulesData&quot;: [ # Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.
    {
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with an image module. This field is here to enable ease of management of image modules.
      &quot;mainImage&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # A 100% width image.
        &quot;contentDescription&quot;: { # Description of the image used for accessibility.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
        &quot;sourceUri&quot;: { # The URI for the image.
          &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
          &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
            &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
            &quot;translatedValues&quot;: [ # Contains the translations for the string.
              {
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
            ],
          },
          &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
        },
      },
    },
  ],
  &quot;infoModuleData&quot;: { # Deprecated. Use textModulesData instead.
    &quot;labelValueRows&quot;: [ # A list of collections of labels and values. These will be displayed one after the other in a singular column.
      {
        &quot;columns&quot;: [ # A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.
          { # A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.
            &quot;label&quot;: &quot;A String&quot;, # The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
            &quot;localizedLabel&quot;: { # Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;localizedValue&quot;: { # Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
              &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
                &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
              },
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
              &quot;translatedValues&quot;: [ # Contains the translations for the string.
                {
                  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
                  &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
                  &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
                },
              ],
            },
            &quot;value&quot;: &quot;A String&quot;, # The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.
          },
        ],
      },
    ],
    &quot;showLastUpdateTime&quot;: True or False,
  },
  &quot;issuerName&quot;: &quot;A String&quot;, # Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#flightClass&quot;`.
  &quot;languageOverride&quot;: &quot;A String&quot;, # If this field is present, boarding passes served to a user&#x27;s device will always be in this language. Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
  &quot;linksModuleData&quot;: { # Links module data. If links module data is also defined on the object, both will be displayed.
    &quot;uris&quot;: [ # The list of URIs.
      {
        &quot;description&quot;: &quot;A String&quot;, # The URI&#x27;s title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
        &quot;id&quot;: &quot;A String&quot;, # The ID associated with a uri. This field is here to enable ease of management of uris.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#uri&quot;`.
        &quot;localizedDescription&quot;: { # Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens.
          &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
          &quot;translatedValues&quot;: [ # Contains the translations for the string.
            {
              &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
              &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
              &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
            },
          ],
        },
        &quot;uri&quot;: &quot;A String&quot;, # The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
      },
    ],
  },
  &quot;localBoardingDateTime&quot;: &quot;A String&quot;, # The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualArrivalDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localEstimatedOrActualDepartureDateTime&quot;: &quot;A String&quot;, # The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.
  &quot;localGateClosingDateTime&quot;: &quot;A String&quot;, # The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localScheduledArrivalDateTime&quot;: &quot;A String&quot;, # The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.
  &quot;localScheduledDepartureDateTime&quot;: &quot;A String&quot;, # Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.
  &quot;localizedIssuerName&quot;: { # Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.
    &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
      &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
      &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
    &quot;translatedValues&quot;: [ # Contains the translations for the string.
      {
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
    ],
  },
  &quot;locations&quot;: [ # Note: This field is currently not supported to trigger geo notifications.
    {
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#latLongPoint&quot;`.
      &quot;latitude&quot;: 3.14, # The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
      &quot;longitude&quot;: 3.14, # The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
    },
  ],
  &quot;messages&quot;: [ # An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
    { # A message that will be displayed with a Valuable
      &quot;body&quot;: &quot;A String&quot;, # The message body.
      &quot;displayInterval&quot;: { # The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided.
        &quot;end&quot;: { # End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#timeInterval&quot;`.
        &quot;start&quot;: { # Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset.
          &quot;date&quot;: &quot;A String&quot;, # An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field&#x27;s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user&#x27;s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user&#x27;s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.
        },
      },
      &quot;header&quot;: &quot;A String&quot;, # The message header.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#walletObjectMessage&quot;`.
      &quot;localizedBody&quot;: { # Translated strings for the message body.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the message header.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;messageType&quot;: &quot;A String&quot;, # The type of the message. Currently, this can only be set for offers.
    },
  ],
  &quot;multipleDevicesAndHoldersAllowedStatus&quot;: &quot;A String&quot;, # Identifies whether multiple users and devices will save the same object referencing this class.
  &quot;origin&quot;: { # Required. Origin airport.
    &quot;airportIataCode&quot;: &quot;A String&quot;, # Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: &quot;SFO&quot;
    &quot;airportNameOverride&quot;: { # Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code &quot;LTN&quot;, IATA website tells us that the corresponding airport city is &quot;London&quot;. If this field is not populated, Google would display &quot;London&quot;. However, populating this field with a custom name (eg: &quot;London Luton&quot;) would override it.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;gate&quot;: &quot;A String&quot;, # A name of the gate. Eg: &quot;B59&quot; or &quot;59&quot;
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#airportInfo&quot;`.
    &quot;terminal&quot;: &quot;A String&quot;, # Terminal name. Eg: &quot;INTL&quot; or &quot;I&quot;
  },
  &quot;redemptionIssuers&quot;: [ # Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
    &quot;A String&quot;,
  ],
  &quot;review&quot;: { # The review comments set by the platform when a class is marked `approved` or `rejected`.
    &quot;comments&quot;: &quot;A String&quot;,
  },
  &quot;reviewStatus&quot;: &quot;A String&quot;, # Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.
  &quot;securityAnimation&quot;: { # Optional information about the security animation. If this is set a security animation will be rendered on pass details.
    &quot;animationType&quot;: &quot;A String&quot;, # Type of animation.
  },
  &quot;textModulesData&quot;: [ # Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.
    { # Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
      &quot;body&quot;: &quot;A String&quot;, # The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
      &quot;header&quot;: &quot;A String&quot;, # The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
      &quot;id&quot;: &quot;A String&quot;, # The ID associated with a text module. This field is here to enable ease of management of text modules.
      &quot;localizedBody&quot;: { # Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;localizedHeader&quot;: { # Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
    },
  ],
  &quot;version&quot;: &quot;A String&quot;, # Deprecated
  &quot;viewUnlockRequirement&quot;: &quot;A String&quot;, # View Unlock Requirement options for the boarding pass.
  &quot;wordMark&quot;: { # Wrapping type for Google hosted images. Next ID: 7 # Deprecated.
    &quot;contentDescription&quot;: { # Description of the image used for accessibility.
      &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
        &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
        &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
      },
      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
      &quot;translatedValues&quot;: [ # Contains the translations for the string.
        {
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
      ],
    },
    &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#image&quot;`.
    &quot;sourceUri&quot;: { # The URI for the image.
      &quot;description&quot;: &quot;A String&quot;, # Additional information about the image, which is unused and retained only for backward compatibility.
      &quot;localizedDescription&quot;: { # Translated strings for the description, which are unused and retained only for backward compatibility.
        &quot;defaultValue&quot;: { # Contains the string to be displayed if no appropriate translation is available.
          &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
          &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
          &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#localizedString&quot;`.
        &quot;translatedValues&quot;: [ # Contains the translations for the string.
          {
            &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string `&quot;walletobjects#translatedString&quot;`.
            &quot;language&quot;: &quot;A String&quot;, # Represents the BCP 47 language tag. Example values are &quot;en-US&quot;, &quot;en-GB&quot;, &quot;de&quot;, or &quot;de-AT&quot;.
            &quot;value&quot;: &quot;A String&quot;, # The UTF-8 encoded translated string.
          },
        ],
      },
      &quot;uri&quot;: &quot;A String&quot;, # The location of the image. URIs must have a scheme.
    },
  },
}</pre>
</div>

</body></html>