{
  "versions": [
    {
      "name": "v3"
    }
  ],
  "namespaces": {
    "TypeSpec": {
      "name": "TypeSpec",
      "fullName": "TypeSpec"
    },
    "TypeSpec.Reflection": {
      "name": "Reflection",
      "fullName": "TypeSpec.Reflection"
    },
    "TypeSpec.Http": {
      "name": "Http",
      "fullName": "TypeSpec.Http"
    },
    "TypeSpec.Http.Private": {
      "name": "Private",
      "fullName": "TypeSpec.Http.Private",
      "doc": "Private decorators. Those are meant for internal use inside Http types only."
    },
    "TypeSpec.Versioning": {
      "name": "Versioning",
      "fullName": "TypeSpec.Versioning"
    },
    "TypeSpec.Rest": {
      "name": "Rest",
      "fullName": "TypeSpec.Rest"
    },
    "TypeSpec.Rest.Private": {
      "name": "Private",
      "fullName": "TypeSpec.Rest.Private"
    },
    "TypeSpec.Rest.Resource": {
      "name": "Resource",
      "fullName": "TypeSpec.Rest.Resource"
    },
    "TypeSpec.OpenAPI": {
      "name": "OpenAPI",
      "fullName": "TypeSpec.OpenAPI"
    },
    "InferalRdf": {
      "name": "InferalRdf",
      "fullName": "InferalRdf"
    },
    "InferalRelay": {
      "name": "InferalRelay",
      "fullName": "InferalRelay"
    },
    "InferalRelay.Visibility": {
      "name": "Visibility",
      "fullName": "InferalRelay.Visibility"
    },
    "Googlehotels": {
      "name": "Googlehotels",
      "fullName": "Googlehotels",
      "title": "Travel Partner API",
      "doc": "Travel Partner ontology over the published Discovery document.",
      "decorators": {
        "apiId": "googlehotels",
        "apiCategory": "Advertising"
      }
    }
  },
  "models": {
    "InferalRelay.WebhookSignatureConfig": {
      "name": "WebhookSignatureConfig",
      "namespace": "InferalRelay",
      "doc": "Configuration for webhook signature verification.",
      "decorators": {
        "doc": "Configuration for webhook signature verification."
      },
      "versioning": {},
      "properties": {
        "algorithm": {
          "name": "algorithm",
          "jsonName": "algorithm",
          "doc": "Signature algorithm",
          "optional": false,
          "type": {
            "kind": "enum",
            "name": "InferalRelay.SignatureAlgorithm"
          },
          "decorators": {
            "doc": "Signature algorithm"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "encoding": {
          "name": "encoding",
          "jsonName": "encoding",
          "doc": "Encoding format for the signature",
          "optional": false,
          "type": {
            "kind": "enum",
            "name": "InferalRelay.SignatureEncoding"
          },
          "decorators": {
            "doc": "Encoding format for the signature"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "header": {
          "name": "header",
          "jsonName": "header",
          "doc": "HTTP header containing the signature",
          "optional": false,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "HTTP header containing the signature"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "prefix": {
          "name": "prefix",
          "jsonName": "prefix",
          "doc": "Optional prefix before the signature (e.g., 'sha256=' or 'v0=')",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Optional prefix before the signature (e.g., 'sha256=' or 'v0=')"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "timestampHeader": {
          "name": "timestampHeader",
          "jsonName": "timestampHeader",
          "doc": "Header containing timestamp (for Slack-style verification)",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Header containing timestamp (for Slack-style verification)"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "baseStringFormat": {
          "name": "baseStringFormat",
          "jsonName": "baseStringFormat",
          "doc": "Format for base string construction (e.g., '{version}:{timestamp}:{body}')",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Format for base string construction (e.g., '{version}:{timestamp}:{body}')"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": []
    },
    "InferalRelay.WebhookTopicSourceConfig": {
      "name": "WebhookTopicSourceConfig",
      "namespace": "InferalRelay",
      "doc": "Configuration for webhook topic discovery.",
      "decorators": {
        "doc": "Configuration for webhook topic discovery."
      },
      "versioning": {},
      "properties": {
        "header": {
          "name": "header",
          "jsonName": "header",
          "doc": "HTTP header containing the event type (e.g., 'X-GitHub-Event')",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "HTTP header containing the event type (e.g., 'X-GitHub-Event')"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        },
        "bodyPath": {
          "name": "bodyPath",
          "jsonName": "bodyPath",
          "doc": "JSON path in body to find event type (e.g., 'event.type')",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "JSON path in body to find event type (e.g., 'event.type')"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": []
    },
    "InferalRelay.WebhookDeliveryIdConfig": {
      "name": "WebhookDeliveryIdConfig",
      "namespace": "InferalRelay",
      "doc": "Configuration for webhook delivery ID tracking.",
      "decorators": {
        "doc": "Configuration for webhook delivery ID tracking."
      },
      "versioning": {},
      "properties": {
        "header": {
          "name": "header",
          "jsonName": "header",
          "doc": "HTTP header containing the delivery ID",
          "optional": false,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "HTTP header containing the delivery ID"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": []
    },
    "InferalRelay.WebhookConfig": {
      "name": "WebhookConfig",
      "namespace": "InferalRelay",
      "doc": "Complete webhook configuration for a service.",
      "decorators": {
        "doc": "Complete webhook configuration for a service."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "doc": "Signature verification configuration",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "InferalRelay.WebhookSignatureConfig"
          },
          "decorators": {
            "doc": "Signature verification configuration"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "UNEXPLAINED_LOSS"
        },
        "topicSource": {
          "name": "topicSource",
          "jsonName": "topicSource",
          "doc": "Topic/event type discovery configuration",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "InferalRelay.WebhookTopicSourceConfig"
          },
          "decorators": {
            "doc": "Topic/event type discovery configuration"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "UNEXPLAINED_LOSS"
        },
        "deliveryId": {
          "name": "deliveryId",
          "jsonName": "deliveryId",
          "doc": "Delivery ID tracking configuration",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "InferalRelay.WebhookDeliveryIdConfig"
          },
          "decorators": {
            "doc": "Delivery ID tracking configuration"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "UNEXPLAINED_LOSS"
        }
      },
      "relationships": []
    },
    "InferalRelay.WooCommerceWebhookConfig": {
      "name": "WooCommerceWebhookConfig",
      "namespace": "InferalRelay",
      "doc": "WooCommerce webhook configuration.",
      "decorators": {
        "doc": "WooCommerce webhook configuration."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states how the relay verifies an inbound delivery from this platform: the header carrying the HMAC, the algorithm and the encoding. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "topicSource": {
          "name": "topicSource",
          "jsonName": "topicSource",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states where the relay reads the event name of an inbound delivery from this platform, a header or a path into the body. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "deliveryId": {
          "name": "deliveryId",
          "jsonName": "deliveryId",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states which header carries this platform's delivery identifier on an inbound delivery. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        }
      },
      "relationships": []
    },
    "InferalRelay.ShopifyWebhookConfig": {
      "name": "ShopifyWebhookConfig",
      "namespace": "InferalRelay",
      "doc": "Shopify webhook configuration.",
      "decorators": {
        "doc": "Shopify webhook configuration."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states how the relay verifies an inbound delivery from this platform: the header carrying the HMAC, the algorithm and the encoding. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "topicSource": {
          "name": "topicSource",
          "jsonName": "topicSource",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states where the relay reads the event name of an inbound delivery from this platform, a header or a path into the body. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "deliveryId": {
          "name": "deliveryId",
          "jsonName": "deliveryId",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states which header carries this platform's delivery identifier on an inbound delivery. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        }
      },
      "relationships": []
    },
    "InferalRelay.GitHubWebhookConfig": {
      "name": "GitHubWebhookConfig",
      "namespace": "InferalRelay",
      "doc": "GitHub webhook configuration.",
      "decorators": {
        "doc": "GitHub webhook configuration."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states how the relay verifies an inbound delivery from this platform: the header carrying the HMAC, the algorithm, the encoding and the prefix. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "topicSource": {
          "name": "topicSource",
          "jsonName": "topicSource",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states where the relay reads the event name of an inbound delivery from this platform, a header or a path into the body. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "deliveryId": {
          "name": "deliveryId",
          "jsonName": "deliveryId",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states which header carries this platform's delivery identifier on an inbound delivery. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        }
      },
      "relationships": []
    },
    "InferalRelay.SlackWebhookConfig": {
      "name": "SlackWebhookConfig",
      "namespace": "InferalRelay",
      "doc": "Slack webhook configuration.",
      "decorators": {
        "doc": "Slack webhook configuration."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states how the relay verifies an inbound delivery from this platform: the header carrying the HMAC, the algorithm, the encoding, the prefix, the timestamp header and the base string the relay signs. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        }
      },
      "relationships": []
    },
    "InferalRelay.StripeWebhookConfig": {
      "name": "StripeWebhookConfig",
      "namespace": "InferalRelay",
      "doc": "Stripe webhook configuration.",
      "decorators": {
        "doc": "Stripe webhook configuration."
      },
      "versioning": {},
      "properties": {
        "signature": {
          "name": "signature",
          "jsonName": "signature",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states how the relay verifies an inbound delivery from this platform: the header carrying the HMAC, the algorithm and the encoding. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        },
        "topicSource": {
          "name": "topicSource",
          "jsonName": "topicSource",
          "optional": false,
          "type": {
            "kind": "model",
            "name": "(anonymous)"
          },
          "decorators": {},
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "REVIEWED_EXCLUSION",
          "decision": {
            "state": "REVIEWED_EXCLUSION",
            "reason": "The value states where the relay reads the event name of an inbound delivery from this platform, a header or a path into the body. It is ingestion configuration the relay holds rather than data a delivery carries, and it is written inline, so it has no name and no class term of its own.",
            "rdfBehavior": "Publish no predicate for the property and no class for the shape beneath it.",
            "permanence": "permanent"
          }
        }
      },
      "relationships": []
    },
    "Googlehotels.GooglehotelsAuth": {
      "name": "GooglehotelsAuth",
      "namespace": "Googlehotels",
      "doc": "Travel Partner OAuth 2.0 bearer authentication.\n\nCallers set `Authorization: Bearer <oauth2-access-token>` against a Hotel\nCenter account the credential is authorised for. The account is named in the\nrequest path rather than by a header. No operation is declared in this\nontology-only contract.",
      "decorators": {
        "doc": "Travel Partner OAuth 2.0 bearer authentication.\n\nCallers set `Authorization: Bearer <oauth2-access-token>` against a Hotel\nCenter account the credential is authorised for. The account is named in the\nrequest path rather than by a header. No operation is declared in this\nontology-only contract."
      },
      "versioning": {},
      "properties": {
        "type": {
          "name": "type",
          "jsonName": "type",
          "doc": "Http authentication",
          "optional": false,
          "type": {
            "kind": "unknown"
          },
          "decorators": {
            "doc": "Http authentication"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "UNEXPLAINED_LOSS"
        },
        "scheme": {
          "name": "scheme",
          "jsonName": "scheme",
          "doc": "bearer auth scheme",
          "optional": false,
          "type": {
            "kind": "literal",
            "value": "Bearer"
          },
          "decorators": {
            "doc": "bearer auth scheme"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": []
    },
    "Googlehotels.AccountLink": {
      "name": "AccountLink",
      "namespace": "Googlehotels",
      "doc": "An account link. Represents the link between a Google Ads customer and a Hotel Ads (Hotel Center) account. An account link defines the set of hotels under the Hotel Center account that is linked to the Google Ads customer.",
      "decorators": {
        "doc": "An account link. Represents the link between a Google Ads customer and a Hotel Ads (Hotel Center) account. An account link defines the set of hotels under the Hotel Center account that is linked to the Google Ads customer."
      },
      "versioning": {},
      "properties": {
        "accountLinkTarget": {
          "name": "accountLinkTarget",
          "jsonName": "accountLinkTarget",
          "doc": "Required for CREATE requests. The properties in the Hotel Center account that can be managed using the linked Google Ads account.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.AccountLinkTarget"
          },
          "decorators": {
            "doc": "Required for CREATE requests. The properties in the Hotel Center account that can be managed using the linked Google Ads account."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLink/accountLinkTarget",
            "sourceLocus": "Googlehotels.AccountLink.accountLinkTarget",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/accountLinkTarget"
          },
          "fidelityState": "PRESERVED"
        },
        "googleAdsCustomerName": {
          "name": "googleAdsCustomerName",
          "jsonName": "googleAdsCustomerName",
          "doc": "Required for CREATE requests. The value representing the Google Ads customer ID in the format `customers/{google_ads_customer_id}`. For example: `customers/0123456789`. Note that the `googleAdsCustomerName` field is not returned in responses to GET requests.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Required for CREATE requests. The value representing the Google Ads customer ID in the format `customers/{google_ads_customer_id}`. For example: `customers/0123456789`. Note that the `googleAdsCustomerName` field is not returned in responses to GET requests."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLink/googleAdsCustomerName",
            "sourceLocus": "Googlehotels.AccountLink.googleAdsCustomerName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/googleAdsCustomerName"
          },
          "fidelityState": "PRESERVED"
        },
        "status": {
          "name": "status",
          "jsonName": "status",
          "doc": "The current status of the account link.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.AccountLinkStatus"
          },
          "decorators": {
            "doc": "The current status of the account link."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLink/status",
            "sourceLocus": "Googlehotels.AccountLink.status",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/status"
          },
          "fidelityState": "PRESERVED"
        },
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "The resource name for the account link in the format `accounts/{account_id}/accountLinks/{account_link_id}`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The resource name for the account link in the format `accounts/{account_id}/accountLinks/{account_link_id}`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLink/name",
            "sourceLocus": "Googlehotels.AccountLink.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/AccountLink"
      }
    },
    "Googlehotels.AccountLinkTarget": {
      "name": "AccountLinkTarget",
      "namespace": "Googlehotels",
      "doc": "Defines whether all properties or a subset of properties in the Hotel Center account can be managed with the linked Google Ads account. If a subset, the specific properties are specified.",
      "decorators": {
        "doc": "Defines whether all properties or a subset of properties in the Hotel Center account can be managed with the linked Google Ads account. If a subset, the specific properties are specified."
      },
      "versioning": {},
      "properties": {
        "allHotels": {
          "name": "allHotels",
          "jsonName": "allHotels",
          "doc": "True if all properties under the Hotel Center account are made available to the account link. The default is `false`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "True if all properties under the Hotel Center account are made available to the account link. The default is `false`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLinkTarget/allHotels",
            "sourceLocus": "Googlehotels.AccountLinkTarget.allHotels",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/allHotels"
          },
          "fidelityState": "PRESERVED"
        },
        "hotelList": {
          "name": "hotelList",
          "jsonName": "hotelList",
          "doc": "List of properties that is made available to the account link.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.HotelList"
          },
          "decorators": {
            "doc": "List of properties that is made available to the account link."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.AccountLinkTarget/hotelList",
            "sourceLocus": "Googlehotels.AccountLinkTarget.hotelList",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelList"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/AccountLinkTarget"
      }
    },
    "Googlehotels.HotelList": {
      "name": "HotelList",
      "namespace": "Googlehotels",
      "doc": "The properties in the Hotel Center account that can be managed with the Google Ads account.",
      "decorators": {
        "doc": "The properties in the Hotel Center account that can be managed with the Google Ads account."
      },
      "versioning": {},
      "properties": {
        "partnerHotelIds": {
          "name": "partnerHotelIds",
          "jsonName": "partnerHotelIds",
          "doc": "Hotel IDs.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "Hotel IDs."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelList/partnerHotelIds",
            "sourceLocus": "Googlehotels.HotelList.partnerHotelIds",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelIds"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/HotelList"
      }
    },
    "Googlehotels.Brand": {
      "name": "Brand",
      "namespace": "Googlehotels",
      "doc": "Brand-level icon and display name configuration. Once approved, the icon and display name appear in the search results for properties that the partner has assigned to this brand.",
      "decorators": {
        "doc": "Brand-level icon and display name configuration. Once approved, the icon and display name appear in the search results for properties that the partner has assigned to this brand."
      },
      "versioning": {},
      "properties": {
        "propertyCount": {
          "name": "propertyCount",
          "jsonName": "propertyCount",
          "doc": "Output only. The number of properties with the corresponding brand ID.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Output only. The number of properties with the corresponding brand ID."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/propertyCount",
            "sourceLocus": "Googlehotels.Brand.propertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/propertyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "iconState": {
          "name": "iconState",
          "jsonName": "iconState",
          "doc": "Output only. The brand's icon's review state. If there are both submitted and active icons, this refers to the submitted icon.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.BrandIconState"
          },
          "decorators": {
            "doc": "Output only. The brand's icon's review state. If there are both submitted and active icons, this refers to the submitted icon."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/iconState",
            "sourceLocus": "Googlehotels.Brand.iconState",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/iconState"
          },
          "fidelityState": "PRESERVED"
        },
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "Output only. The resource name for the brand in the format `accounts/{account_id}/brands/{brand_id}`. The `brand_id` corresponds to the partner's brand identifier used for landing page matching and the property-level brand identifier. A default brand is applied to properties that do not have a brand. The `brand_id` of the default brand is `NO_BRAND_ID`. It can be fetched and updated like any configured brand.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Output only. The resource name for the brand in the format `accounts/{account_id}/brands/{brand_id}`. The `brand_id` corresponds to the partner's brand identifier used for landing page matching and the property-level brand identifier. A default brand is applied to properties that do not have a brand. The `brand_id` of the default brand is `NO_BRAND_ID`. It can be fetched and updated like any configured brand."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/name",
            "sourceLocus": "Googlehotels.Brand.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        },
        "iconDisapprovalReasons": {
          "name": "iconDisapprovalReasons",
          "jsonName": "iconDisapprovalReasons",
          "doc": "Output only. The icon's disapproval reason(s). Only applies to submitted icons with `REJECTED` state.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "enum",
              "name": "Googlehotels.BrandIconDisapprovalReasons"
            }
          },
          "decorators": {
            "doc": "Output only. The icon's disapproval reason(s). Only applies to submitted icons with `REJECTED` state."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/iconDisapprovalReasons",
            "sourceLocus": "Googlehotels.Brand.iconDisapprovalReasons",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/iconDisapprovalReasons"
          },
          "fidelityState": "PRESERVED"
        },
        "icon": {
          "name": "icon",
          "jsonName": "icon",
          "doc": "Input only. The brand's [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource) identifying the brand's icon. The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Input only. The brand's [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource) identifying the brand's icon. The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/icon",
            "sourceLocus": "Googlehotels.Brand.icon",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/icon"
          },
          "fidelityState": "PRESERVED"
        },
        "submittedIcon": {
          "name": "submittedIcon",
          "jsonName": "submittedIcon",
          "doc": "Output only. The brand's submitted [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. A submitted icon is one that is new or rejected.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Output only. The brand's submitted [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. A submitted icon is one that is new or rejected."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/submittedIcon",
            "sourceLocus": "Googlehotels.Brand.submittedIcon",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/submittedIcon"
          },
          "fidelityState": "PRESERVED"
        },
        "displayNameDisapprovalReason": {
          "name": "displayNameDisapprovalReason",
          "jsonName": "displayNameDisapprovalReason",
          "doc": "Output only. Display name's disapproval reason. Only applies to display names with the review state 'REJECTED'.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.DisplayNameDisapprovalReason"
            }
          },
          "decorators": {
            "doc": "Output only. Display name's disapproval reason. Only applies to display names with the review state 'REJECTED'."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/displayNameDisapprovalReason",
            "sourceLocus": "Googlehotels.Brand.displayNameDisapprovalReason",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/displayNameDisapprovalReason"
          },
          "fidelityState": "PRESERVED"
        },
        "activeDisplayNames": {
          "name": "activeDisplayNames",
          "jsonName": "activeDisplayNames",
          "doc": "Output only. The brand's active display names in all provided languages, only present if the display name is approved for all provided languages.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "Output only. The brand's active display names in all provided languages, only present if the display name is approved for all provided languages."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/activeDisplayNames",
            "sourceLocus": "Googlehotels.Brand.activeDisplayNames",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/activeDisplayNames"
          },
          "fidelityState": "PRESERVED"
        },
        "displayNames": {
          "name": "displayNames",
          "jsonName": "displayNames",
          "doc": "Input only. The name Google displays for the brand's properties. Setting the display names is only necessary if you want to override the landing page display name or account-level display name for the brand. Google reviews the display names for appropriate content. When there are multiple languages, Google will only show the display names once Google approves all the languages.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "Input only. The name Google displays for the brand's properties. Setting the display names is only necessary if you want to override the landing page display name or account-level display name for the brand. Google reviews the display names for appropriate content. When there are multiple languages, Google will only show the display names once Google approves all the languages."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/displayNames",
            "sourceLocus": "Googlehotels.Brand.displayNames",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/displayNames"
          },
          "fidelityState": "PRESERVED"
        },
        "activeIconUri": {
          "name": "activeIconUri",
          "jsonName": "activeIconUri",
          "doc": "Output only. URL of the active icon, only present when the icon has been approved.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Output only. URL of the active icon, only present when the icon has been approved."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/activeIconUri",
            "sourceLocus": "Googlehotels.Brand.activeIconUri",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/activeIconUri"
          },
          "fidelityState": "PRESERVED"
        },
        "submittedDisplayNames": {
          "name": "submittedDisplayNames",
          "jsonName": "submittedDisplayNames",
          "doc": "Output only. The brand's submitted display names in all provided languages, only present if the display name is new or rejected for any language.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "Output only. The brand's submitted display names in all provided languages, only present if the display name is new or rejected for any language."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/submittedDisplayNames",
            "sourceLocus": "Googlehotels.Brand.submittedDisplayNames",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/submittedDisplayNames"
          },
          "fidelityState": "PRESERVED"
        },
        "displayNameState": {
          "name": "displayNameState",
          "jsonName": "displayNameState",
          "doc": "Output only. The brand's display names review state, which applies to all display name language entries. If there are both submitted and active display names, this refers to the submitted display names.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.BrandDisplayNameState"
          },
          "decorators": {
            "doc": "Output only. The brand's display names review state, which applies to all display name language entries. If there are both submitted and active display names, this refers to the submitted display names."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/displayNameState",
            "sourceLocus": "Googlehotels.Brand.displayNameState",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/displayNameState"
          },
          "fidelityState": "PRESERVED"
        },
        "activeIcon": {
          "name": "activeIcon",
          "jsonName": "activeIcon",
          "doc": "Output only. The brand's active [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. An active icon is one that has been approved.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Output only. The brand's active [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. An active icon is one that has been approved."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Brand/activeIcon",
            "sourceLocus": "Googlehotels.Brand.activeIcon",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/activeIcon"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Brand"
      }
    },
    "Googlehotels.DisplayNameDisapprovalReason": {
      "name": "DisplayNameDisapprovalReason",
      "namespace": "Googlehotels",
      "doc": "Disapproval reason of the display name in a specific language.",
      "decorators": {
        "doc": "Disapproval reason of the display name in a specific language."
      },
      "versioning": {},
      "properties": {
        "languageCode": {
          "name": "languageCode",
          "jsonName": "languageCode",
          "doc": "Language of the disapproved display name.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Language of the disapproved display name."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.DisplayNameDisapprovalReason/languageCode",
            "sourceLocus": "Googlehotels.DisplayNameDisapprovalReason.languageCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/languageCode"
          },
          "fidelityState": "PRESERVED"
        },
        "disapprovalReason": {
          "name": "disapprovalReason",
          "jsonName": "disapprovalReason",
          "doc": "Disapproval reason.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.DisplayNameDisapprovalReasonDisapprovalReason"
          },
          "decorators": {
            "doc": "Disapproval reason."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.DisplayNameDisapprovalReason/disapprovalReason",
            "sourceLocus": "Googlehotels.DisplayNameDisapprovalReason.disapprovalReason",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/disapprovalReason"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/DisplayNameDisapprovalReason"
      }
    },
    "Googlehotels.LocalizedText": {
      "name": "LocalizedText",
      "namespace": "Googlehotels",
      "doc": "Localized variant of a text in a particular language.",
      "decorators": {
        "doc": "Localized variant of a text in a particular language."
      },
      "versioning": {},
      "properties": {
        "text": {
          "name": "text",
          "jsonName": "text",
          "doc": "Localized string in the language corresponding to language_code below.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Localized string in the language corresponding to language_code below."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.LocalizedText/text",
            "sourceLocus": "Googlehotels.LocalizedText.text",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/text"
          },
          "fidelityState": "PRESERVED"
        },
        "languageCode": {
          "name": "languageCode",
          "jsonName": "languageCode",
          "doc": "The text's BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The text's BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.LocalizedText/languageCode",
            "sourceLocus": "Googlehotels.LocalizedText.languageCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/languageCode"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/LocalizedText"
      }
    },
    "Googlehotels.CreateReconciliationReportResponse": {
      "name": "CreateReconciliationReportResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for ReconciliationReportService.CreateReconciliationReport.",
      "decorators": {
        "doc": "Response message for ReconciliationReportService.CreateReconciliationReport."
      },
      "versioning": {},
      "properties": {
        "issues": {
          "name": "issues",
          "jsonName": "issues",
          "doc": "Issues that were encountered when validating the file.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.ReconciliationReportValidationIssue"
            }
          },
          "decorators": {
            "doc": "Issues that were encountered when validating the file."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.CreateReconciliationReportResponse/issues",
            "sourceLocus": "Googlehotels.CreateReconciliationReportResponse.issues",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/issues"
          },
          "fidelityState": "PRESERVED"
        },
        "successfulRecordCount": {
          "name": "successfulRecordCount",
          "jsonName": "successfulRecordCount",
          "doc": "The number of commission records that were successfully saved.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of commission records that were successfully saved."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.CreateReconciliationReportResponse/successfulRecordCount",
            "sourceLocus": "Googlehotels.CreateReconciliationReportResponse.successfulRecordCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/successfulRecordCount"
          },
          "fidelityState": "PRESERVED"
        },
        "reconciliationReport": {
          "name": "reconciliationReport",
          "jsonName": "reconciliationReport",
          "doc": "Resource name of the new reconciliation report. The format is `accounts/{account_id}`.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.ReconciliationReport"
          },
          "decorators": {
            "doc": "Resource name of the new reconciliation report. The format is `accounts/{account_id}`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.CreateReconciliationReportResponse/reconciliationReport",
            "sourceLocus": "Googlehotels.CreateReconciliationReportResponse.reconciliationReport",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/reconciliationReport"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/CreateReconciliationReportResponse"
      }
    },
    "Googlehotels.ReconciliationReportValidationIssue": {
      "name": "ReconciliationReportValidationIssue",
      "namespace": "Googlehotels",
      "doc": "Represents an issue encountered when validating a reconciliation report.",
      "decorators": {
        "doc": "Represents an issue encountered when validating a reconciliation report."
      },
      "versioning": {},
      "properties": {
        "description": {
          "name": "description",
          "jsonName": "description",
          "doc": "Text description of the issue, typically including what was seen and why it was invalid.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Text description of the issue, typically including what was seen and why it was invalid."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReportValidationIssue/description",
            "sourceLocus": "Googlehotels.ReconciliationReportValidationIssue.description",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/description"
          },
          "fidelityState": "PRESERVED"
        },
        "lineNum": {
          "name": "lineNum",
          "jsonName": "lineNum",
          "doc": "The line number on which the issue was detected. If this field is 0, the issue applies to the whole file.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The line number on which the issue was detected. If this field is 0, the issue applies to the whole file."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReportValidationIssue/lineNum",
            "sourceLocus": "Googlehotels.ReconciliationReportValidationIssue.lineNum",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lineNum"
          },
          "fidelityState": "PRESERVED"
        },
        "fieldName": {
          "name": "fieldName",
          "jsonName": "fieldName",
          "doc": "Name of the invalid field. If no field name is given, this issue applies to the whole line (or file).",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Name of the invalid field. If no field name is given, this issue applies to the whole line (or file)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReportValidationIssue/fieldName",
            "sourceLocus": "Googlehotels.ReconciliationReportValidationIssue.fieldName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/fieldName"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ReconciliationReportValidationIssue"
      }
    },
    "Googlehotels.ReconciliationReport": {
      "name": "ReconciliationReport",
      "namespace": "Googlehotels",
      "doc": "Reconciliation report (Hotel Ads only). Covers the Reconciliation Reports functionality in pre-v3.0 API versions. Lets you see the status, validate, and upload your Commissions reconciliation reports. This only applies if you are in the Google Hotel Ads Commissions Program (GHACP). For more information about working with reconciliation reports in Hotel Center, refer to [Reconciliation reports](//support.google.com/hotelprices/answer/7019060#sending).",
      "decorators": {
        "doc": "Reconciliation report (Hotel Ads only). Covers the Reconciliation Reports functionality in pre-v3.0 API versions. Lets you see the status, validate, and upload your Commissions reconciliation reports. This only applies if you are in the Google Hotel Ads Commissions Program (GHACP). For more information about working with reconciliation reports in Hotel Center, refer to [Reconciliation reports](//support.google.com/hotelprices/answer/7019060#sending)."
      },
      "versioning": {},
      "properties": {
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "Resource name in the format `accounts/{account_id}/reconciliationReports/{datetime}~{filename}`. The value for `{datetime}` must be from 0001-01-01T00:00:00 to 9999-12-31T23:59:59 inclusive.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Resource name in the format `accounts/{account_id}/reconciliationReports/{datetime}~{filename}`. The value for `{datetime}` must be from 0001-01-01T00:00:00 to 9999-12-31T23:59:59 inclusive."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReport/name",
            "sourceLocus": "Googlehotels.ReconciliationReport.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        },
        "fileName": {
          "name": "fileName",
          "jsonName": "fileName",
          "doc": "Required. Desired filename of the reconciliation report.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Required. Desired filename of the reconciliation report."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReport/fileName",
            "sourceLocus": "Googlehotels.ReconciliationReport.fileName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/fileName"
          },
          "fidelityState": "PRESERVED"
        },
        "contents": {
          "name": "contents",
          "jsonName": "contents",
          "doc": "Required. The contents of the commission report. Report contents must conform to the requirements specified in [Reconciliation reports] (//support.google.com/hotelprices/answer/7019060#creating).",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Required. The contents of the commission report. Report contents must conform to the requirements specified in [Reconciliation reports] (//support.google.com/hotelprices/answer/7019060#creating)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ReconciliationReport/contents",
            "sourceLocus": "Googlehotels.ReconciliationReport.contents",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/contents"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ReconciliationReport"
      }
    },
    "Googlehotels.DataIssueDetail": {
      "name": "DataIssueDetail",
      "namespace": "Googlehotels",
      "doc": "Details on a data issue in the listing.",
      "decorators": {
        "doc": "Details on a data issue in the listing."
      },
      "versioning": {},
      "properties": {
        "isSelfResolving": {
          "name": "isSelfResolving",
          "jsonName": "isSelfResolving",
          "doc": "Whether or not the issue is self-resolving. If true, the issue is expected to resolve itself. If false or not set, action is needed to resolve the issue. Refer to documentation on the data issue’s type for further information.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "Whether or not the issue is self-resolving. If true, the issue is expected to resolve itself. If false or not set, action is needed to resolve the issue. Refer to documentation on the data issue’s type for further information."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.DataIssueDetail/isSelfResolving",
            "sourceLocus": "Googlehotels.DataIssueDetail.isSelfResolving",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/isSelfResolving"
          },
          "fidelityState": "PRESERVED"
        },
        "dataIssueSeverity": {
          "name": "dataIssueSeverity",
          "jsonName": "dataIssueSeverity",
          "doc": "The severity of the data issue.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.DataIssueDetailDataIssueSeverity"
          },
          "decorators": {
            "doc": "The severity of the data issue."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.DataIssueDetail/dataIssueSeverity",
            "sourceLocus": "Googlehotels.DataIssueDetail.dataIssueSeverity",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/dataIssueSeverity"
          },
          "fidelityState": "PRESERVED"
        },
        "dataIssueType": {
          "name": "dataIssueType",
          "jsonName": "dataIssueType",
          "doc": "The type of the data issue.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.DataIssueDetailDataIssueType"
          },
          "decorators": {
            "doc": "The type of the data issue."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.DataIssueDetail/dataIssueType",
            "sourceLocus": "Googlehotels.DataIssueDetail.dataIssueType",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/dataIssueType"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/DataIssueDetail"
      }
    },
    "Googlehotels.Date": {
      "name": "Date",
      "namespace": "Googlehotels",
      "doc": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
      "decorators": {
        "doc": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp"
      },
      "versioning": {},
      "properties": {
        "year": {
          "name": "year",
          "jsonName": "year",
          "doc": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Date/year",
            "sourceLocus": "Googlehotels.Date.year",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/year"
          },
          "fidelityState": "PRESERVED"
        },
        "month": {
          "name": "month",
          "jsonName": "month",
          "doc": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Date/month",
            "sourceLocus": "Googlehotels.Date.month",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/month"
          },
          "fidelityState": "PRESERVED"
        },
        "day": {
          "name": "day",
          "jsonName": "day",
          "doc": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Date/day",
            "sourceLocus": "Googlehotels.Date.day",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/day"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Date"
      }
    },
    "Googlehotels.Empty": {
      "name": "Empty",
      "namespace": "Googlehotels",
      "doc": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "decorators": {
        "doc": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }"
      },
      "versioning": {},
      "properties": {},
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Empty"
      }
    },
    "Googlehotels.FreeBookingLinksResult": {
      "name": "FreeBookingLinksResult",
      "namespace": "Googlehotels",
      "doc": "**DEPRECATED:** Use `PropertyPerformanceResult` with `PropertyPerformanceReportService` instead. Represents a result from querying for free booking link stats for an account.",
      "decorators": {
        "doc": "**DEPRECATED:** Use `PropertyPerformanceResult` with `PropertyPerformanceReportService` instead. Represents a result from querying for free booking link stats for an account."
      },
      "versioning": {},
      "properties": {
        "partnerHotelId": {
          "name": "partnerHotelId",
          "jsonName": "partnerHotelId",
          "doc": "Partner's hotel ID. Only present if `partnerHotelId` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's hotel ID. Only present if `partnerHotelId` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/partnerHotelId",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.partnerHotelId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelId"
          },
          "fidelityState": "PRESERVED"
        },
        "date": {
          "name": "date",
          "jsonName": "date",
          "doc": "A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/date",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.date",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/date"
          },
          "fidelityState": "PRESERVED"
        },
        "partnerHotelDisplayName": {
          "name": "partnerHotelDisplayName",
          "jsonName": "partnerHotelDisplayName",
          "doc": "Partner's hotel name. Only present if `partnerHotelDisplayName` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's hotel name. Only present if `partnerHotelDisplayName` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/partnerHotelDisplayName",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.partnerHotelDisplayName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelDisplayName"
          },
          "fidelityState": "PRESERVED"
        },
        "deviceType": {
          "name": "deviceType",
          "jsonName": "deviceType",
          "doc": "The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.FreeBookingLinksResultDeviceType"
          },
          "decorators": {
            "doc": "The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/deviceType",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.deviceType",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/deviceType"
          },
          "fidelityState": "PRESERVED"
        },
        "clickCount": {
          "name": "clickCount",
          "jsonName": "clickCount",
          "doc": "The total number of clicks that were recorded for this result.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of clicks that were recorded for this result."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/clickCount",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.clickCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/clickCount"
          },
          "fidelityState": "PRESERVED"
        },
        "userRegionCode": {
          "name": "userRegionCode",
          "jsonName": "userRegionCode",
          "doc": "ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.FreeBookingLinksResult/userRegionCode",
            "sourceLocus": "Googlehotels.FreeBookingLinksResult.userRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/userRegionCode"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/FreeBookingLinksResult"
      }
    },
    "Googlehotels.HotelPricePerItinerary": {
      "name": "HotelPricePerItinerary",
      "namespace": "Googlehotels",
      "doc": "Hotel price for a given itinerary.",
      "decorators": {
        "doc": "Hotel price for a given itinerary."
      },
      "versioning": {},
      "properties": {
        "currencyCode": {
          "name": "currencyCode",
          "jsonName": "currencyCode",
          "doc": "Currency for `price`, `taxes`, and `fees`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Currency for `price`, `taxes`, and `fees`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/currencyCode",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.currencyCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currencyCode"
          },
          "fidelityState": "PRESERVED"
        },
        "taxes": {
          "name": "taxes",
          "jsonName": "taxes",
          "doc": "Taxes for this itinerary.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "Taxes for this itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/taxes",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.taxes",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/taxes",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/monetaryValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "lengthOfStayDays": {
          "name": "lengthOfStayDays",
          "jsonName": "lengthOfStayDays",
          "doc": "Number of nights for the itinerary.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Number of nights for the itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/lengthOfStayDays",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.lengthOfStayDays",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lengthOfStayDays"
          },
          "fidelityState": "PRESERVED"
        },
        "price": {
          "name": "price",
          "jsonName": "price",
          "doc": "Hotel price for this itinerary.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "Hotel price for this itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/price",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.price",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/price",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/monetaryValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "updateTime": {
          "name": "updateTime",
          "jsonName": "updateTime",
          "doc": "Update timestamp for this hotel price.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Update timestamp for this hotel price."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/updateTime",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.updateTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/updateTime"
          },
          "fidelityState": "PRESERVED"
        },
        "fees": {
          "name": "fees",
          "jsonName": "fees",
          "doc": "Fees for this itinerary.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "Fees for this itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/fees",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.fees",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/fees",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/monetaryValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "checkinDate": {
          "name": "checkinDate",
          "jsonName": "checkinDate",
          "doc": "Check-in date.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "Check-in date."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelPricePerItinerary/checkinDate",
            "sourceLocus": "Googlehotels.HotelPricePerItinerary.checkinDate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/checkinDate"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/HotelPricePerItinerary"
      }
    },
    "Googlehotels.HotelView": {
      "name": "HotelView",
      "namespace": "Googlehotels",
      "doc": "A hotel view.",
      "decorators": {
        "doc": "A hotel view."
      },
      "versioning": {},
      "properties": {
        "partnerHotelDisplayName": {
          "name": "partnerHotelDisplayName",
          "jsonName": "partnerHotelDisplayName",
          "doc": "Partner's hotel name.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's hotel name."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/partnerHotelDisplayName",
            "sourceLocus": "Googlehotels.HotelView.partnerHotelDisplayName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelDisplayName"
          },
          "fidelityState": "PRESERVED"
        },
        "googleHotelDisplayName": {
          "name": "googleHotelDisplayName",
          "jsonName": "googleHotelDisplayName",
          "doc": "Google's hotel name.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Google's hotel name."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/googleHotelDisplayName",
            "sourceLocus": "Googlehotels.HotelView.googleHotelDisplayName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/googleHotelDisplayName"
          },
          "fidelityState": "PRESERVED"
        },
        "matchStatus": {
          "name": "matchStatus",
          "jsonName": "matchStatus",
          "doc": "Current matching status of the hotel.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.HotelViewMatchStatus"
          },
          "decorators": {
            "doc": "Current matching status of the hotel."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/matchStatus",
            "sourceLocus": "Googlehotels.HotelView.matchStatus",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/matchStatus"
          },
          "fidelityState": "PRESERVED"
        },
        "partnerHotelId": {
          "name": "partnerHotelId",
          "jsonName": "partnerHotelId",
          "doc": "The unique ID of the hotel that the partner provides in their Hotel List Feed.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The unique ID of the hotel that the partner provides in their Hotel List Feed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/partnerHotelId",
            "sourceLocus": "Googlehotels.HotelView.partnerHotelId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelId"
          },
          "fidelityState": "PRESERVED"
        },
        "propertyDetails": {
          "name": "propertyDetails",
          "jsonName": "propertyDetails",
          "doc": "Optional. A URL to the property on Google. Only available for properties that are listed.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Optional. A URL to the property on Google. Only available for properties that are listed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/propertyDetails",
            "sourceLocus": "Googlehotels.HotelView.propertyDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/propertyDetails"
          },
          "fidelityState": "PRESERVED"
        },
        "primaryOverclusteredPartnerHotelId": {
          "name": "primaryOverclusteredPartnerHotelId",
          "jsonName": "primaryOverclusteredPartnerHotelId",
          "doc": "The primary hotel in the overclustered set.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The primary hotel in the overclustered set."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/primaryOverclusteredPartnerHotelId",
            "sourceLocus": "Googlehotels.HotelView.primaryOverclusteredPartnerHotelId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/primaryOverclusteredPartnerHotelId"
          },
          "fidelityState": "PRESERVED"
        },
        "liveOnGoogleStatus": {
          "name": "liveOnGoogleStatus",
          "jsonName": "liveOnGoogleStatus",
          "doc": "Optional. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.HotelViewLiveOnGoogleStatus"
          },
          "decorators": {
            "doc": "Optional. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/liveOnGoogleStatus",
            "sourceLocus": "Googlehotels.HotelView.liveOnGoogleStatus",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/liveOnGoogleStatus"
          },
          "fidelityState": "PRESERVED"
        },
        "matchFailureReasons": {
          "name": "matchFailureReasons",
          "jsonName": "matchFailureReasons",
          "doc": "The reasons why a hotel failed to match to a property on Maps.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "The reasons why a hotel failed to match to a property on Maps."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/matchFailureReasons",
            "sourceLocus": "Googlehotels.HotelView.matchFailureReasons",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/matchFailureReasons"
          },
          "fidelityState": "PRESERVED"
        },
        "googleHotelId": {
          "name": "googleHotelId",
          "jsonName": "googleHotelId",
          "doc": "Google's canonical ID for the hotel.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Uint64AsString",
            "scalarAncestry": [
              "Googlehotels.Uint64AsString",
              "uint64",
              "integer",
              "numeric"
            ],
            "builtInKind": "uint64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "uint64"
          },
          "decorators": {
            "doc": "Google's canonical ID for the hotel."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/googleHotelId",
            "sourceLocus": "Googlehotels.HotelView.googleHotelId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/googleHotelId"
          },
          "fidelityState": "PRESERVED"
        },
        "overclusteredPartnerHotelIds": {
          "name": "overclusteredPartnerHotelIds",
          "jsonName": "overclusteredPartnerHotelIds",
          "doc": "Other hotels with which the hotel is overclustered. If your feed contains overclustered hotels, update the feed and resubmit it. To do this, you can use the manual match tool.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "Other hotels with which the hotel is overclustered. If your feed contains overclustered hotels, update the feed and resubmit it. To do this, you can use the manual match tool."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/overclusteredPartnerHotelIds",
            "sourceLocus": "Googlehotels.HotelView.overclusteredPartnerHotelIds",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/overclusteredPartnerHotelIds"
          },
          "fidelityState": "PRESERVED"
        },
        "dataIssues": {
          "name": "dataIssues",
          "jsonName": "dataIssues",
          "doc": "DEPRECATED. Indicates that the hotel has data quality issues. The value of this field indicates the type of error. This has been replaced with the data_issue_detail field. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "enum",
              "name": "Googlehotels.HotelViewDataIssues"
            }
          },
          "decorators": {
            "doc": "DEPRECATED. Indicates that the hotel has data quality issues. The value of this field indicates the type of error. This has been replaced with the data_issue_detail field. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/dataIssues",
            "sourceLocus": "Googlehotels.HotelView.dataIssues",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/dataIssues"
          },
          "fidelityState": "PRESERVED"
        },
        "liveOnGoogle": {
          "name": "liveOnGoogle",
          "jsonName": "liveOnGoogle",
          "doc": "Optional. DEPRECATED. Prefer live_on_google_status. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "Optional. DEPRECATED. Prefer live_on_google_status. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/liveOnGoogle",
            "sourceLocus": "Googlehotels.HotelView.liveOnGoogle",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/liveOnGoogle"
          },
          "fidelityState": "PRESERVED"
        },
        "googleClusterId": {
          "name": "googleClusterId",
          "jsonName": "googleClusterId",
          "doc": "The Google Maps identifier for the hotel.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Uint64AsString",
            "scalarAncestry": [
              "Googlehotels.Uint64AsString",
              "uint64",
              "integer",
              "numeric"
            ],
            "builtInKind": "uint64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "uint64"
          },
          "decorators": {
            "doc": "The Google Maps identifier for the hotel."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/googleClusterId",
            "sourceLocus": "Googlehotels.HotelView.googleClusterId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/googleClusterId"
          },
          "fidelityState": "PRESERVED"
        },
        "dataIssueDetail": {
          "name": "dataIssueDetail",
          "jsonName": "dataIssueDetail",
          "doc": "The type and severity of each data quality issue in the feed. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.DataIssueDetail"
            }
          },
          "decorators": {
            "doc": "The type and severity of each data quality issue in the feed. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.HotelView/dataIssueDetail",
            "sourceLocus": "Googlehotels.HotelView.dataIssueDetail",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/dataIssueDetail"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/HotelView"
      }
    },
    "Googlehotels.Icon": {
      "name": "Icon",
      "namespace": "Googlehotels",
      "doc": "Information about a partner's icon.",
      "decorators": {
        "doc": "Information about a partner's icon."
      },
      "versioning": {},
      "properties": {
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "Required. Output only. The resource name for the icon in the format `accounts/{account_id}/icons/{icon_id}`. Google generates the `icon_id` during the `create` operation. Use the `icon_id` to associate the icon with a brand using the [accounts.brands](/hotels/hotel-prices/api-reference/rest/v3/accounts.brands#resource:-brand) API.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Required. Output only. The resource name for the icon in the format `accounts/{account_id}/icons/{icon_id}`. Google generates the `icon_id` during the `create` operation. Use the `icon_id` to associate the icon with a brand using the [accounts.brands](/hotels/hotel-prices/api-reference/rest/v3/accounts.brands#resource:-brand) API."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/name",
            "sourceLocus": "Googlehotels.Icon.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        },
        "disapprovalReasons": {
          "name": "disapprovalReasons",
          "jsonName": "disapprovalReasons",
          "doc": "Output only. The icon's disapproval reason(s). Only applies to icons with `REJECTED` state.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "enum",
              "name": "Googlehotels.IconDisapprovalReasons"
            }
          },
          "decorators": {
            "doc": "Output only. The icon's disapproval reason(s). Only applies to icons with `REJECTED` state."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/disapprovalReasons",
            "sourceLocus": "Googlehotels.Icon.disapprovalReasons",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/disapprovalReasons"
          },
          "fidelityState": "PRESERVED"
        },
        "iconUri": {
          "name": "iconUri",
          "jsonName": "iconUri",
          "doc": "Output only. The approved icon's Google-hosted URI. Only applies to icons with `APPROVED` state.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Output only. The approved icon's Google-hosted URI. Only applies to icons with `APPROVED` state."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/iconUri",
            "sourceLocus": "Googlehotels.Icon.iconUri",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/iconUri"
          },
          "fidelityState": "PRESERVED"
        },
        "state": {
          "name": "state",
          "jsonName": "state",
          "doc": "Output only. The icon's current state.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.IconState"
          },
          "decorators": {
            "doc": "Output only. The icon's current state."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/state",
            "sourceLocus": "Googlehotels.Icon.state",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/state"
          },
          "fidelityState": "PRESERVED"
        },
        "reference": {
          "name": "reference",
          "jsonName": "reference",
          "doc": "Optional. Value for tracking the icon. It could be the primary key to your icon in your system, or the icon's filename. Google does not use this value.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Optional. Value for tracking the icon. It could be the primary key to your icon in your system, or the icon's filename. Google does not use this value."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/reference",
            "sourceLocus": "Googlehotels.Icon.reference",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/reference"
          },
          "fidelityState": "PRESERVED"
        },
        "imageData": {
          "name": "imageData",
          "jsonName": "imageData",
          "doc": "Required. Input only. The icon contents, which must be in PNG format, or convertible to PNG.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "bytes",
            "scalarAncestry": [
              "bytes"
            ],
            "builtInKind": "bytes"
          },
          "decorators": {
            "doc": "Required. Input only. The icon contents, which must be in PNG format, or convertible to PNG."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Icon/imageData",
            "sourceLocus": "Googlehotels.Icon.imageData",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/imageData"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Icon"
      }
    },
    "Googlehotels.Image": {
      "name": "Image",
      "namespace": "Googlehotels",
      "doc": "A single image in a VR Listing. Title and gallery URL are stored per locale. NEXT ID: 4",
      "decorators": {
        "doc": "A single image in a VR Listing. Title and gallery URL are stored per locale. NEXT ID: 4"
      },
      "versioning": {},
      "properties": {
        "galleryUri": {
          "name": "galleryUri",
          "jsonName": "galleryUri",
          "doc": "URL that is deeplink to the image in a gallery (or a webpage).",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "URL that is deeplink to the image in a gallery (or a webpage)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Image/galleryUri",
            "sourceLocus": "Googlehotels.Image.galleryUri",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/galleryUri"
          },
          "fidelityState": "PRESERVED"
        },
        "uri": {
          "name": "uri",
          "jsonName": "uri",
          "doc": "URL that points to the binary image content directly.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "URL that points to the binary image content directly."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Image/uri",
            "sourceLocus": "Googlehotels.Image.uri",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/uri"
          },
          "fidelityState": "PRESERVED"
        },
        "title": {
          "name": "title",
          "jsonName": "title",
          "doc": "Title of the image.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "Title of the image."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Image/title",
            "sourceLocus": "Googlehotels.Image.title",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/title"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Image"
      }
    },
    "Googlehotels.Key": {
      "name": "Key",
      "namespace": "Googlehotels",
      "doc": "Key of a result.",
      "decorators": {
        "doc": "Key of a result."
      },
      "versioning": {},
      "properties": {
        "partnerHotelId": {
          "name": "partnerHotelId",
          "jsonName": "partnerHotelId",
          "doc": "Partner's hotel ID. If `partnerHotelId` is not a value of the `aggregateBy` parameter in the request call, then the `partnerHotelId` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's hotel ID. If `partnerHotelId` is not a value of the `aggregateBy` parameter in the request call, then the `partnerHotelId` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/partnerHotelId",
            "sourceLocus": "Googlehotels.Key.partnerHotelId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelId"
          },
          "fidelityState": "PRESERVED"
        },
        "lengthOfStayDays": {
          "name": "lengthOfStayDays",
          "jsonName": "lengthOfStayDays",
          "doc": "The number of nights for the itinerary. If `lengthOfStayDays` is not a value of the `aggregateBy` parameter in the request call, then the `lengthOfStayDays` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of nights for the itinerary. If `lengthOfStayDays` is not a value of the `aggregateBy` parameter in the request call, then the `lengthOfStayDays` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/lengthOfStayDays",
            "sourceLocus": "Googlehotels.Key.lengthOfStayDays",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lengthOfStayDays"
          },
          "fidelityState": "PRESERVED"
        },
        "occupancy": {
          "name": "occupancy",
          "jsonName": "occupancy",
          "doc": "The total occupancy of the itinerary. If `occupancy` is not a value of the `aggregateBy` parameter in the request call, then the `occupancy` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total occupancy of the itinerary. If `occupancy` is not a value of the `aggregateBy` parameter in the request call, then the `occupancy` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/occupancy",
            "sourceLocus": "Googlehotels.Key.occupancy",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/occupancy"
          },
          "fidelityState": "PRESERVED"
        },
        "advanceBookingWindow": {
          "name": "advanceBookingWindow",
          "jsonName": "advanceBookingWindow",
          "doc": "The number of days in advance the user wants to book the itinerary. If `advanceBookingWindow` is not a value of the `aggregateBy` parameter in the request call, then the `advanceBookingWindow` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of days in advance the user wants to book the itinerary. If `advanceBookingWindow` is not a value of the `aggregateBy` parameter in the request call, then the `advanceBookingWindow` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/advanceBookingWindow",
            "sourceLocus": "Googlehotels.Key.advanceBookingWindow",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/advanceBookingWindow"
          },
          "fidelityState": "PRESERVED"
        },
        "checkinDate": {
          "name": "checkinDate",
          "jsonName": "checkinDate",
          "doc": "The check-in date of the itinerary. If `checkinDate` is not a value of the `aggregateBy` parameter in the request call, then the `checkinDate` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "The check-in date of the itinerary. If `checkinDate` is not a value of the `aggregateBy` parameter in the request call, then the `checkinDate` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/checkinDate",
            "sourceLocus": "Googlehotels.Key.checkinDate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/checkinDate"
          },
          "fidelityState": "PRESERVED"
        },
        "hotelRegionCode": {
          "name": "hotelRegionCode",
          "jsonName": "hotelRegionCode",
          "doc": "CLDR region code of the country/region of the hotel. If `hotelRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `hotelRegionCode` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "CLDR region code of the country/region of the hotel. If `hotelRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `hotelRegionCode` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/hotelRegionCode",
            "sourceLocus": "Googlehotels.Key.hotelRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelRegionCode"
          },
          "fidelityState": "PRESERVED"
        },
        "deviceType": {
          "name": "deviceType",
          "jsonName": "deviceType",
          "doc": "The user’s device type. If `deviceType` is not a value of the `aggregateBy` parameter in the request call, then the `deviceType` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.KeyDeviceType"
          },
          "decorators": {
            "doc": "The user’s device type. If `deviceType` is not a value of the `aggregateBy` parameter in the request call, then the `deviceType` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/deviceType",
            "sourceLocus": "Googlehotels.Key.deviceType",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/deviceType"
          },
          "fidelityState": "PRESERVED"
        },
        "userRegionCode": {
          "name": "userRegionCode",
          "jsonName": "userRegionCode",
          "doc": "ISO 3116 region code of the country/region of the user. If `userRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `userRegionCode` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "ISO 3116 region code of the country/region of the user. If `userRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `userRegionCode` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/userRegionCode",
            "sourceLocus": "Googlehotels.Key.userRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/userRegionCode"
          },
          "fidelityState": "PRESERVED"
        },
        "date": {
          "name": "date",
          "jsonName": "date",
          "doc": "The date for which you are requesting metrics. If `date` is not a value of the `aggregateBy` parameter in the request call, then the `date` field is not returned in the `Key`.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "The date for which you are requesting metrics. If `date` is not a value of the `aggregateBy` parameter in the request call, then the `date` field is not returned in the `Key`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Key/date",
            "sourceLocus": "Googlehotels.Key.date",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/date"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Key"
      }
    },
    "Googlehotels.LatLng": {
      "name": "LatLng",
      "namespace": "Googlehotels",
      "doc": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.",
      "decorators": {
        "doc": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges."
      },
      "versioning": {},
      "properties": {
        "longitude": {
          "name": "longitude",
          "jsonName": "longitude",
          "doc": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The longitude in degrees. It must be in the range [-180.0, +180.0]."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.LatLng/longitude",
            "sourceLocus": "Googlehotels.LatLng.longitude",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/longitude"
          },
          "fidelityState": "PRESERVED"
        },
        "latitude": {
          "name": "latitude",
          "jsonName": "latitude",
          "doc": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The latitude in degrees. It must be in the range [-90.0, +90.0]."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.LatLng/latitude",
            "sourceLocus": "Googlehotels.LatLng.latitude",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/latitude"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/LatLng"
      }
    },
    "Googlehotels.ListAccountLinksResponse": {
      "name": "ListAccountLinksResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for AccountLinkService.ListAccountLinks.",
      "decorators": {
        "doc": "Response message for AccountLinkService.ListAccountLinks."
      },
      "versioning": {},
      "properties": {
        "accountLinks": {
          "name": "accountLinks",
          "jsonName": "accountLinks",
          "doc": "A list of all account links associated with the Hotel Center account being queried.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.AccountLink"
            }
          },
          "decorators": {
            "doc": "A list of all account links associated with the Hotel Center account being queried."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListAccountLinksResponse/accountLinks",
            "sourceLocus": "Googlehotels.ListAccountLinksResponse.accountLinks",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/accountLinks"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListAccountLinksResponse"
      }
    },
    "Googlehotels.ListBrandsResponse": {
      "name": "ListBrandsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for BrandService.ListBrands.",
      "decorators": {
        "doc": "Response message for BrandService.ListBrands."
      },
      "versioning": {},
      "properties": {
        "brands": {
          "name": "brands",
          "jsonName": "brands",
          "doc": "A list of brands for the current page associated with the Hotel Center account being queried.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.Brand"
            }
          },
          "decorators": {
            "doc": "A list of brands for the current page associated with the Hotel Center account being queried."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListBrandsResponse/brands",
            "sourceLocus": "Googlehotels.ListBrandsResponse.brands",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/brands"
          },
          "fidelityState": "PRESERVED"
        },
        "nextPageToken": {
          "name": "nextPageToken",
          "jsonName": "nextPageToken",
          "doc": "Token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListBrandsResponse/nextPageToken",
            "sourceLocus": "Googlehotels.ListBrandsResponse.nextPageToken",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/nextPageToken"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListBrandsResponse"
      }
    },
    "Googlehotels.ListHotelViewsResponse": {
      "name": "ListHotelViewsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for HotelViewService.ListHotelViews.",
      "decorators": {
        "doc": "Response message for HotelViewService.ListHotelViews."
      },
      "versioning": {},
      "properties": {
        "hotelViews": {
          "name": "hotelViews",
          "jsonName": "hotelViews",
          "doc": "The list of rows that match the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.HotelView"
            }
          },
          "decorators": {
            "doc": "The list of rows that match the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListHotelViewsResponse/hotelViews",
            "sourceLocus": "Googlehotels.ListHotelViewsResponse.hotelViews",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelViews"
          },
          "fidelityState": "PRESERVED"
        },
        "nextPageToken": {
          "name": "nextPageToken",
          "jsonName": "nextPageToken",
          "doc": "Pagination token used to retrieve the next page of results.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Pagination token used to retrieve the next page of results."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListHotelViewsResponse/nextPageToken",
            "sourceLocus": "Googlehotels.ListHotelViewsResponse.nextPageToken",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/nextPageToken"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListHotelViewsResponse"
      }
    },
    "Googlehotels.ListIconsResponse": {
      "name": "ListIconsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for IconService.ListIcons.",
      "decorators": {
        "doc": "Response message for IconService.ListIcons."
      },
      "versioning": {},
      "properties": {
        "icons": {
          "name": "icons",
          "jsonName": "icons",
          "doc": "A list of all icons associated with the queried partner account.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.Icon"
            }
          },
          "decorators": {
            "doc": "A list of all icons associated with the queried partner account."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListIconsResponse/icons",
            "sourceLocus": "Googlehotels.ListIconsResponse.icons",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/icons"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListIconsResponse"
      }
    },
    "Googlehotels.ListPriceAccuracyViewsResponse": {
      "name": "ListPriceAccuracyViewsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for PriceAccuracyViewService.ListPriceAccuracyViews.",
      "decorators": {
        "doc": "Response message for PriceAccuracyViewService.ListPriceAccuracyViews."
      },
      "versioning": {},
      "properties": {
        "priceAccuracyViews": {
          "name": "priceAccuracyViews",
          "jsonName": "priceAccuracyViews",
          "doc": "The list of rows that match the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.PriceAccuracyView"
            }
          },
          "decorators": {
            "doc": "The list of rows that match the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListPriceAccuracyViewsResponse/priceAccuracyViews",
            "sourceLocus": "Googlehotels.ListPriceAccuracyViewsResponse.priceAccuracyViews",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceAccuracyViews"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListPriceAccuracyViewsResponse"
      }
    },
    "Googlehotels.PriceAccuracyView": {
      "name": "PriceAccuracyView",
      "namespace": "Googlehotels",
      "doc": "A price accuracy view. Covers the price accuracy reports functionality in pre-v3.0 API versions. For more information, refer to [Price Accuracy report](https://support.google.com/hotelprices/answer/6318506).",
      "decorators": {
        "doc": "A price accuracy view. Covers the price accuracy reports functionality in pre-v3.0 API versions. For more information, refer to [Price Accuracy report](https://support.google.com/hotelprices/answer/6318506)."
      },
      "versioning": {},
      "properties": {
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "Resource name should be in the format `accounts/{account_id}/priceAccuracyViews/{report_date}`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Resource name should be in the format `accounts/{account_id}/priceAccuracyViews/{report_date}`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyView/name",
            "sourceLocus": "Googlehotels.PriceAccuracyView.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        },
        "results": {
          "name": "results",
          "jsonName": "results",
          "doc": "The list of rows that match the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.PriceAccuracyRow"
            }
          },
          "decorators": {
            "doc": "The list of rows that match the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyView/results",
            "sourceLocus": "Googlehotels.PriceAccuracyView.results",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/results"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceAccuracyView"
      }
    },
    "Googlehotels.PriceAccuracyRow": {
      "name": "PriceAccuracyRow",
      "namespace": "Googlehotels",
      "doc": "A price accuracy row.",
      "decorators": {
        "doc": "A price accuracy row."
      },
      "versioning": {},
      "properties": {
        "mismatchReason": {
          "name": "mismatchReason",
          "jsonName": "mismatchReason",
          "doc": "The reason why the fetched price didn't match the cached price.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PriceAccuracyRowMismatchReason"
          },
          "decorators": {
            "doc": "The reason why the fetched price didn't match the cached price."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/mismatchReason",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.mismatchReason",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/mismatchReason"
          },
          "fidelityState": "PRESERVED"
        },
        "deviceType": {
          "name": "deviceType",
          "jsonName": "deviceType",
          "doc": "The user's device type.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PriceAccuracyRowDeviceType"
          },
          "decorators": {
            "doc": "The user's device type."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/deviceType",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.deviceType",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/deviceType"
          },
          "fidelityState": "PRESERVED"
        },
        "hotel": {
          "name": "hotel",
          "jsonName": "hotel",
          "doc": "Partner-defined hotel ID.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner-defined hotel ID."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/hotel",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.hotel",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotel"
          },
          "fidelityState": "PRESERVED"
        },
        "rateRuleId": {
          "name": "rateRuleId",
          "jsonName": "rateRuleId",
          "doc": "The rate rule of the advertised price for non-public rates.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The rate rule of the advertised price for non-public rates."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/rateRuleId",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.rateRuleId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/rateRuleId"
          },
          "fidelityState": "PRESERVED"
        },
        "finalDomain": {
          "name": "finalDomain",
          "jsonName": "finalDomain",
          "doc": "The domain of the final page from which prices are read.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The domain of the final page from which prices are read."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/finalDomain",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.finalDomain",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/finalDomain"
          },
          "fidelityState": "PRESERVED"
        },
        "cachedPriceRecord": {
          "name": "cachedPriceRecord",
          "jsonName": "cachedPriceRecord",
          "doc": "Price as advertised.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.PriceRecord"
          },
          "decorators": {
            "doc": "Price as advertised."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/cachedPriceRecord",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.cachedPriceRecord",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/cachedPriceRecord"
          },
          "fidelityState": "PRESERVED"
        },
        "checkinDate": {
          "name": "checkinDate",
          "jsonName": "checkinDate",
          "doc": "Check-in date.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "Check-in date."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/checkinDate",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.checkinDate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/checkinDate"
          },
          "fidelityState": "PRESERVED"
        },
        "lengthOfStayDays": {
          "name": "lengthOfStayDays",
          "jsonName": "lengthOfStayDays",
          "doc": "Length of stay.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Length of stay."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/lengthOfStayDays",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.lengthOfStayDays",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lengthOfStayDays"
          },
          "fidelityState": "PRESERVED"
        },
        "hotelCountryCode": {
          "name": "hotelCountryCode",
          "jsonName": "hotelCountryCode",
          "doc": "The country of the hotel (based on address).",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The country of the hotel (based on address)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/hotelCountryCode",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.hotelCountryCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelCountryCode"
          },
          "fidelityState": "PRESERVED"
        },
        "fetchedPriceRecord": {
          "name": "fetchedPriceRecord",
          "jsonName": "fetchedPriceRecord",
          "doc": "Price as read from the partner website.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.PriceRecord"
          },
          "decorators": {
            "doc": "Price as read from the partner website."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/fetchedPriceRecord",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.fetchedPriceRecord",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/fetchedPriceRecord"
          },
          "fidelityState": "PRESERVED"
        },
        "correctionTime": {
          "name": "correctionTime",
          "jsonName": "correctionTime",
          "doc": "Time at which an incorrect price is updated to a correct price.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Time at which an incorrect price is updated to a correct price."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/correctionTime",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.correctionTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/correctionTime"
          },
          "fidelityState": "PRESERVED"
        },
        "signalSource": {
          "name": "signalSource",
          "jsonName": "signalSource",
          "doc": "Source of the price accuracy signal.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PriceAccuracyRowSignalSource"
          },
          "decorators": {
            "doc": "Source of the price accuracy signal."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/signalSource",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.signalSource",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/signalSource"
          },
          "fidelityState": "PRESERVED"
        },
        "url": {
          "name": "url",
          "jsonName": "url",
          "doc": "Initial URL visited on the partner website.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Initial URL visited on the partner website."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/url",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.url",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/url"
          },
          "fidelityState": "PRESERVED"
        },
        "childOccupancy": {
          "name": "childOccupancy",
          "jsonName": "childOccupancy",
          "doc": "The number of children in the occupancy details of the validation query. Note: This field may not be consistently populated. If missing, partners should assume a default of 0 children.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of children in the occupancy details of the validation query. Note: This field may not be consistently populated. If missing, partners should assume a default of 0 children."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/childOccupancy",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.childOccupancy",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/childOccupancy"
          },
          "fidelityState": "PRESERVED"
        },
        "userRegionCode": {
          "name": "userRegionCode",
          "jsonName": "userRegionCode",
          "doc": "The user's region.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The user's region."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/userRegionCode",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.userRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/userRegionCode"
          },
          "fidelityState": "PRESERVED"
        },
        "affectsScore": {
          "name": "affectsScore",
          "jsonName": "affectsScore",
          "doc": "True if this row affects the overall price accuracy score.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "True if this row affects the overall price accuracy score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/affectsScore",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.affectsScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/affectsScore"
          },
          "fidelityState": "PRESERVED"
        },
        "adultOccupancy": {
          "name": "adultOccupancy",
          "jsonName": "adultOccupancy",
          "doc": "The number of adults in the occupancy details of the validation query. Note: This field may not be consistently populated due to technical constraints. If missing, partners should assume a default of 2 adults.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of adults in the occupancy details of the validation query. Note: This field may not be consistently populated due to technical constraints. If missing, partners should assume a default of 2 adults."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceAccuracyRow/adultOccupancy",
            "sourceLocus": "Googlehotels.PriceAccuracyRow.adultOccupancy",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/adultOccupancy"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceAccuracyRow"
      }
    },
    "Googlehotels.PriceRecord": {
      "name": "PriceRecord",
      "namespace": "Googlehotels",
      "doc": "A price record.",
      "decorators": {
        "doc": "A price record."
      },
      "versioning": {},
      "properties": {
        "time": {
          "name": "time",
          "jsonName": "time",
          "doc": "Timestamp of this price record.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Timestamp of this price record."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceRecord/time",
            "sourceLocus": "Googlehotels.PriceRecord.time",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/time"
          },
          "fidelityState": "PRESERVED"
        },
        "taxesAndFees": {
          "name": "taxesAndFees",
          "jsonName": "taxesAndFees",
          "doc": "Taxes and fees.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "Taxes and fees."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceRecord/taxesAndFees",
            "sourceLocus": "Googlehotels.PriceRecord.taxesAndFees",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/taxesAndFees",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/monetaryValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "currencyCode": {
          "name": "currencyCode",
          "jsonName": "currencyCode",
          "doc": "ISO 4217 currency code.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "ISO 4217 currency code."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceRecord/currencyCode",
            "sourceLocus": "Googlehotels.PriceRecord.currencyCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currencyCode"
          },
          "fidelityState": "PRESERVED"
        },
        "basePrice": {
          "name": "basePrice",
          "jsonName": "basePrice",
          "doc": "Base price.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "Base price."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceRecord/basePrice",
            "sourceLocus": "Googlehotels.PriceRecord.basePrice",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/basePrice",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/monetaryValue"
            ]
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceRecord"
      }
    },
    "Googlehotels.ListPriceCoverageViewsResponse": {
      "name": "ListPriceCoverageViewsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for PriceCoverageViewService.ListPriceCoverageViews.",
      "decorators": {
        "doc": "Response message for PriceCoverageViewService.ListPriceCoverageViews."
      },
      "versioning": {},
      "properties": {
        "priceCoverageViews": {
          "name": "priceCoverageViews",
          "jsonName": "priceCoverageViews",
          "doc": "Hotel price coverage stats.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.PriceCoverageView"
            }
          },
          "decorators": {
            "doc": "Hotel price coverage stats."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListPriceCoverageViewsResponse/priceCoverageViews",
            "sourceLocus": "Googlehotels.ListPriceCoverageViewsResponse.priceCoverageViews",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceCoverageViews"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListPriceCoverageViewsResponse"
      }
    },
    "Googlehotels.PriceCoverageView": {
      "name": "PriceCoverageView",
      "namespace": "Googlehotels",
      "doc": "A price coverage view. Covers the `price_coverage_stats` Scorecard functionality in pre-v3.0 API versions. For more information, refer to Price Coverage for Push and Hint partners.",
      "decorators": {
        "doc": "A price coverage view. Covers the `price_coverage_stats` Scorecard functionality in pre-v3.0 API versions. For more information, refer to Price Coverage for Push and Hint partners."
      },
      "versioning": {},
      "properties": {
        "priceCoverageBuckets": {
          "name": "priceCoverageBuckets",
          "jsonName": "priceCoverageBuckets",
          "doc": "Price coverage stats for combinations of advance booking window and length of stay ranges.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.PriceCoverageBucket"
            }
          },
          "decorators": {
            "doc": "Price coverage stats for combinations of advance booking window and length of stay ranges."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageView/priceCoverageBuckets",
            "sourceLocus": "Googlehotels.PriceCoverageView.priceCoverageBuckets",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceCoverageBuckets"
          },
          "fidelityState": "PRESERVED"
        },
        "priceCoverageBinaryPercent": {
          "name": "priceCoverageBinaryPercent",
          "jsonName": "priceCoverageBinaryPercent",
          "doc": "The ratio between the number of hotels which have at least one price for the calculation period and `matched_property_count`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The ratio between the number of hotels which have at least one price for the calculation period and `matched_property_count`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageView/priceCoverageBinaryPercent",
            "sourceLocus": "Googlehotels.PriceCoverageView.priceCoverageBinaryPercent",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceCoverageBinaryPercent",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/ratioValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "matchedPropertyCount": {
          "name": "matchedPropertyCount",
          "jsonName": "matchedPropertyCount",
          "doc": "The total number of properties that have prices for the given itineraries.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of properties that have prices for the given itineraries."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageView/matchedPropertyCount",
            "sourceLocus": "Googlehotels.PriceCoverageView.matchedPropertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/matchedPropertyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "calculationDate": {
          "name": "calculationDate",
          "jsonName": "calculationDate",
          "doc": "The date on which the calculations were made.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "The date on which the calculations were made."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageView/calculationDate",
            "sourceLocus": "Googlehotels.PriceCoverageView.calculationDate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/calculationDate"
          },
          "fidelityState": "PRESERVED"
        },
        "priceCoveragePercent": {
          "name": "priceCoveragePercent",
          "jsonName": "priceCoveragePercent",
          "doc": "The overall price coverage for an account. This value is the ratio between the number of hotel prices for the calculation booking window and length of stay range divided by the number of all possible prices, which is `matched_property_count` times 330 (for advance book window) times 30 (for length of stay).",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The overall price coverage for an account. This value is the ratio between the number of hotel prices for the calculation booking window and length of stay range divided by the number of all possible prices, which is `matched_property_count` times 330 (for advance book window) times 30 (for length of stay)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageView/priceCoveragePercent",
            "sourceLocus": "Googlehotels.PriceCoverageView.priceCoveragePercent",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceCoveragePercent",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/ratioValue"
            ]
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceCoverageView"
      }
    },
    "Googlehotels.PriceCoverageBucket": {
      "name": "PriceCoverageBucket",
      "namespace": "Googlehotels",
      "doc": "Coverage stats for one combination of advance booking window and length of stay.",
      "decorators": {
        "doc": "Coverage stats for one combination of advance booking window and length of stay."
      },
      "versioning": {},
      "properties": {
        "advanceBookingWindowRange": {
          "name": "advanceBookingWindowRange",
          "jsonName": "advanceBookingWindowRange",
          "doc": "Advance booking window range.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PriceCoverageBucketAdvanceBookingWindowRange"
          },
          "decorators": {
            "doc": "Advance booking window range."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageBucket/advanceBookingWindowRange",
            "sourceLocus": "Googlehotels.PriceCoverageBucket.advanceBookingWindowRange",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/advanceBookingWindowRange"
          },
          "fidelityState": "PRESERVED"
        },
        "lengthOfStayRange": {
          "name": "lengthOfStayRange",
          "jsonName": "lengthOfStayRange",
          "doc": "Length of stay range.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PriceCoverageBucketLengthOfStayRange"
          },
          "decorators": {
            "doc": "Length of stay range."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageBucket/lengthOfStayRange",
            "sourceLocus": "Googlehotels.PriceCoverageBucket.lengthOfStayRange",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lengthOfStayRange"
          },
          "fidelityState": "PRESERVED"
        },
        "priceCoveragePercent": {
          "name": "priceCoveragePercent",
          "jsonName": "priceCoveragePercent",
          "doc": "The percent of itineraries for which you have coverage for this advance booking window bucket and length of stay bucket.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The percent of itineraries for which you have coverage for this advance booking window bucket and length of stay bucket."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageBucket/priceCoveragePercent",
            "sourceLocus": "Googlehotels.PriceCoverageBucket.priceCoveragePercent",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceCoveragePercent",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/ratioValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "availablePriceCount": {
          "name": "availablePriceCount",
          "jsonName": "availablePriceCount",
          "doc": "Number of prices for this advance booking window bucket and length of stay bucket.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Number of prices for this advance booking window bucket and length of stay bucket."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceCoverageBucket/availablePriceCount",
            "sourceLocus": "Googlehotels.PriceCoverageBucket.availablePriceCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/availablePriceCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceCoverageBucket"
      }
    },
    "Googlehotels.ListReconciliationReportsResponse": {
      "name": "ListReconciliationReportsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for ReconciliationReportService.ListReconciliationReports.",
      "decorators": {
        "doc": "Response message for ReconciliationReportService.ListReconciliationReports."
      },
      "versioning": {},
      "properties": {
        "reconciliationReports": {
          "name": "reconciliationReports",
          "jsonName": "reconciliationReports",
          "doc": "The list of names of reconciliation reports. Note that the `contents` and `fileName` fields of each `ReconciliationReport` object are not returned by this call.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.ReconciliationReport"
            }
          },
          "decorators": {
            "doc": "The list of names of reconciliation reports. Note that the `contents` and `fileName` fields of each `ReconciliationReport` object are not returned by this call."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ListReconciliationReportsResponse/reconciliationReports",
            "sourceLocus": "Googlehotels.ListReconciliationReportsResponse.reconciliationReports",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/reconciliationReports"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ListReconciliationReportsResponse"
      }
    },
    "Googlehotels.MissedParticipationCountDetails": {
      "name": "MissedParticipationCountDetails",
      "namespace": "Googlehotels",
      "doc": "Missed participation count broken down by reason.",
      "decorators": {
        "doc": "Missed participation count broken down by reason."
      },
      "versioning": {},
      "properties": {
        "priceUnavailableCountDetails": {
          "name": "priceUnavailableCountDetails",
          "jsonName": "priceUnavailableCountDetails",
          "doc": "The reasons that contributed to the price unavailable count.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.PriceUnavailableCountDetails"
          },
          "decorators": {
            "doc": "The reasons that contributed to the price unavailable count."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceUnavailableCountDetails",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceUnavailableCountDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceUnavailableCountDetails"
          },
          "fidelityState": "PRESERVED"
        },
        "noPriceCountDetails": {
          "name": "noPriceCountDetails",
          "jsonName": "noPriceCountDetails",
          "doc": "The reasons that contributed to the no price count (for example, live pricing not available) and the total count for each reason.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.NoPriceCountDetails"
          },
          "decorators": {
            "doc": "The reasons that contributed to the no price count (for example, live pricing not available) and the total count for each reason."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/noPriceCountDetails",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.noPriceCountDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/noPriceCountDetails"
          },
          "fidelityState": "PRESERVED"
        },
        "priceMissingCount": {
          "name": "priceMissingCount",
          "jsonName": "priceMissingCount",
          "doc": "The total number of missed participations due to either a price not being present in Google's cache or failing to successfully respond to live pricing. Comprised of the following: * Bandwidth depleted * Cache rate missing * Itinerary blocked * Live pricing not set up * Live pricing timeout * Live pricing error",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participations due to either a price not being present in Google's cache or failing to successfully respond to live pricing. Comprised of the following: * Bandwidth depleted * Cache rate missing * Itinerary blocked * Live pricing not set up * Live pricing timeout * Live pricing error"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceMissingCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceMissingCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceMissingCount"
          },
          "fidelityState": "PRESERVED"
        },
        "noTaxBreakdownCount": {
          "name": "noTaxBreakdownCount",
          "jsonName": "noTaxBreakdownCount",
          "doc": "The total number of missed participation due to one or more of your hotels not specifying taxes and fees separately.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to one or more of your hotels not specifying taxes and fees separately."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/noTaxBreakdownCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.noTaxBreakdownCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/noTaxBreakdownCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceMissingCountDetails": {
          "name": "priceMissingCountDetails",
          "jsonName": "priceMissingCountDetails",
          "doc": "The reasons that contributed to the price missing count.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.PriceMissingCountDetails"
          },
          "decorators": {
            "doc": "The reasons that contributed to the price missing count."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceMissingCountDetails",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceMissingCountDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceMissingCountDetails"
          },
          "fidelityState": "PRESERVED"
        },
        "noLandingPageCount": {
          "name": "noLandingPageCount",
          "jsonName": "noLandingPageCount",
          "doc": "No landing page matched the user.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No landing page matched the user."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/noLandingPageCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.noLandingPageCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/noLandingPageCount"
          },
          "fidelityState": "PRESERVED"
        },
        "hotelSuspendedCount": {
          "name": "hotelSuspendedCount",
          "jsonName": "hotelSuspendedCount",
          "doc": "The total number of missed participations due to one or more of your hotels being suspended due to price accuracy violations.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participations due to one or more of your hotels being suspended due to price accuracy violations."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/hotelSuspendedCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.hotelSuspendedCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelSuspendedCount"
          },
          "fidelityState": "PRESERVED"
        },
        "otherReasonCount": {
          "name": "otherReasonCount",
          "jsonName": "otherReasonCount",
          "doc": "Hotel did not participate for an unknown reason.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Hotel did not participate for an unknown reason."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/otherReasonCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.otherReasonCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/otherReasonCount"
          },
          "fidelityState": "PRESERVED"
        },
        "noAvailabilityCount": {
          "name": "noAvailabilityCount",
          "jsonName": "noAvailabilityCount",
          "doc": "The total number of missed participation due to the hotel/itinerary combination being unavailable, or the traveler was ineligible for the rates. To participate in these auctions, you may need to provide more pricing information.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to the hotel/itinerary combination being unavailable, or the traveler was ineligible for the rates. To participate in these auctions, you may need to provide more pricing information."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/noAvailabilityCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.noAvailabilityCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/noAvailabilityCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceUnavailableCount": {
          "name": "priceUnavailableCount",
          "jsonName": "priceUnavailableCount",
          "doc": "The total number of missed participation due to price listed as unavailable (-1) for the requested itinerary. Comprised of the following: * Price unavailable * Participation not likely * Other",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to price listed as unavailable (-1) for the requested itinerary. Comprised of the following: * Price unavailable * Participation not likely * Other"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceUnavailableCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceUnavailableCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceUnavailableCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceProblemCount": {
          "name": "priceProblemCount",
          "jsonName": "priceProblemCount",
          "doc": "The total number of missed participation due to an issue with the accuracy of the price provided for the itinerary. Comprised of the following: * Hotel suspended * Price unusually high * Price unusually low * Taxes and feeds missing",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to an issue with the accuracy of the price provided for the itinerary. Comprised of the following: * Hotel suspended * Price unusually high * Price unusually low * Taxes and feeds missing"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceProblemCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceProblemCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceProblemCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceProblemCountDetails": {
          "name": "priceProblemCountDetails",
          "jsonName": "priceProblemCountDetails",
          "doc": "The reasons that contributed to the price problem count.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.PriceProblemCountDetails"
          },
          "decorators": {
            "doc": "The reasons that contributed to the price problem count."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/priceProblemCountDetails",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.priceProblemCountDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceProblemCountDetails"
          },
          "fidelityState": "PRESERVED"
        },
        "noPriceCount": {
          "name": "noPriceCount",
          "jsonName": "noPriceCount",
          "doc": "The total number of missed participations due to a price not being offered for the requested itinerary.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participations due to a price not being offered for the requested itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.MissedParticipationCountDetails/noPriceCount",
            "sourceLocus": "Googlehotels.MissedParticipationCountDetails.noPriceCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/noPriceCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/MissedParticipationCountDetails"
      }
    },
    "Googlehotels.PriceUnavailableCountDetails": {
      "name": "PriceUnavailableCountDetails",
      "namespace": "Googlehotels",
      "doc": "The reasons that contributed to the price unavailable count and the total count for each reason.",
      "decorators": {
        "doc": "The reasons that contributed to the price unavailable count and the total count for each reason."
      },
      "versioning": {},
      "properties": {
        "participationNotLikelyCount": {
          "name": "participationNotLikelyCount",
          "jsonName": "participationNotLikelyCount",
          "doc": "No price was cached for this itinerary, and no live query was done because your server usually tells us the hotel is unavailable or sold out.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price was cached for this itinerary, and no live query was done because your server usually tells us the hotel is unavailable or sold out."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceUnavailableCountDetails/participationNotLikelyCount",
            "sourceLocus": "Googlehotels.PriceUnavailableCountDetails.participationNotLikelyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/participationNotLikelyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceUnavailableCount": {
          "name": "priceUnavailableCount",
          "jsonName": "priceUnavailableCount",
          "doc": "Hotel did not participate because it wasn't available for the itinerary dates.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Hotel did not participate because it wasn't available for the itinerary dates."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceUnavailableCountDetails/priceUnavailableCount",
            "sourceLocus": "Googlehotels.PriceUnavailableCountDetails.priceUnavailableCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceUnavailableCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceUnavailableCountDetails"
      }
    },
    "Googlehotels.NoPriceCountDetails": {
      "name": "NoPriceCountDetails",
      "namespace": "Googlehotels",
      "doc": "The reasons that contributed to the no price count and the total count for each reason.",
      "decorators": {
        "doc": "The reasons that contributed to the no price count and the total count for each reason."
      },
      "versioning": {},
      "properties": {
        "livePricingTechnicalIssueCount": {
          "name": "livePricingTechnicalIssueCount",
          "jsonName": "livePricingTechnicalIssueCount",
          "doc": "The total number of missed participation due to technical issues with live pricing for any of the following reasons: * You didn’t respond quickly enough and exceeded the response deadline (around 4000 milliseconds). * You returned an error. * Your response was malformed.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to technical issues with live pricing for any of the following reasons: * You didn’t respond quickly enough and exceeded the response deadline (around 4000 milliseconds). * You returned an error. * Your response was malformed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.NoPriceCountDetails/livePricingTechnicalIssueCount",
            "sourceLocus": "Googlehotels.NoPriceCountDetails.livePricingTechnicalIssueCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingTechnicalIssueCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingNotTriggeredCount": {
          "name": "livePricingNotTriggeredCount",
          "jsonName": "livePricingNotTriggeredCount",
          "doc": "The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't set a bid. * You didn't have a valid landing page. * There weren't enough prices in the cache.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't set a bid. * You didn't have a valid landing page. * There weren't enough prices in the cache."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.NoPriceCountDetails/livePricingNotTriggeredCount",
            "sourceLocus": "Googlehotels.NoPriceCountDetails.livePricingNotTriggeredCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingNotTriggeredCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingConfigIssueCount": {
          "name": "livePricingConfigIssueCount",
          "jsonName": "livePricingConfigIssueCount",
          "doc": "The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't have live pricing configured for these searches. * You restricted Google from accessing the hotel itinerary in question.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't have live pricing configured for these searches. * You restricted Google from accessing the hotel itinerary in question."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.NoPriceCountDetails/livePricingConfigIssueCount",
            "sourceLocus": "Googlehotels.NoPriceCountDetails.livePricingConfigIssueCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingConfigIssueCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingOtherReasonCount": {
          "name": "livePricingOtherReasonCount",
          "jsonName": "livePricingOtherReasonCount",
          "doc": "The number of missed participations due to other issues with live pricing.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of missed participations due to other issues with live pricing."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.NoPriceCountDetails/livePricingOtherReasonCount",
            "sourceLocus": "Googlehotels.NoPriceCountDetails.livePricingOtherReasonCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingOtherReasonCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingNotAvailableCount": {
          "name": "livePricingNotAvailableCount",
          "jsonName": "livePricingNotAvailableCount",
          "doc": "The total number of missed participation due to live pricing being unavailable. Live pricing will not be triggered for certain default itineraries or UIs. In this scenario, partners will need a cached price to participate.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of missed participation due to live pricing being unavailable. Live pricing will not be triggered for certain default itineraries or UIs. In this scenario, partners will need a cached price to participate."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.NoPriceCountDetails/livePricingNotAvailableCount",
            "sourceLocus": "Googlehotels.NoPriceCountDetails.livePricingNotAvailableCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingNotAvailableCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/NoPriceCountDetails"
      }
    },
    "Googlehotels.PriceMissingCountDetails": {
      "name": "PriceMissingCountDetails",
      "namespace": "Googlehotels",
      "doc": "The reasons that contributed to the price missing count and the total count for each reason.",
      "decorators": {
        "doc": "The reasons that contributed to the price missing count and the total count for each reason."
      },
      "versioning": {},
      "properties": {
        "livePricingErrorCount": {
          "name": "livePricingErrorCount",
          "jsonName": "livePricingErrorCount",
          "doc": "No price was cached for this itinerary. A live query did not time out, but your system returned an error.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price was cached for this itinerary. A live query did not time out, but your system returned an error."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/livePricingErrorCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.livePricingErrorCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingErrorCount"
          },
          "fidelityState": "PRESERVED"
        },
        "cacheRateMissingCount": {
          "name": "cacheRateMissingCount",
          "jsonName": "cacheRateMissingCount",
          "doc": "No price exists in the cache for this itinerary. A live query was not done due to page constraints.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price exists in the cache for this itinerary. A live query was not done due to page constraints."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/cacheRateMissingCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.cacheRateMissingCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/cacheRateMissingCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingNotSetupCount": {
          "name": "livePricingNotSetupCount",
          "jsonName": "livePricingNotSetupCount",
          "doc": "No price was cached for this itinerary, and live query was not configured for this account.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price was cached for this itinerary, and live query was not configured for this account."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/livePricingNotSetupCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.livePricingNotSetupCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingNotSetupCount"
          },
          "fidelityState": "PRESERVED"
        },
        "bandwidthDepletedCount": {
          "name": "bandwidthDepletedCount",
          "jsonName": "bandwidthDepletedCount",
          "doc": "No price was cached for this itinerary, and there was no live query quota remaining.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price was cached for this itinerary, and there was no live query quota remaining."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/bandwidthDepletedCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.bandwidthDepletedCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/bandwidthDepletedCount"
          },
          "fidelityState": "PRESERVED"
        },
        "livePricingTimeoutCount": {
          "name": "livePricingTimeoutCount",
          "jsonName": "livePricingTimeoutCount",
          "doc": "No price was cached for this itinerary, and a live query sent to your system timed out.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "No price was cached for this itinerary, and a live query sent to your system timed out."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/livePricingTimeoutCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.livePricingTimeoutCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/livePricingTimeoutCount"
          },
          "fidelityState": "PRESERVED"
        },
        "itineraryBlockedCount": {
          "name": "itineraryBlockedCount",
          "jsonName": "itineraryBlockedCount",
          "doc": "The itinerary was outside of your basic parameters, so no price was pulled for the itinerary from either live query or cache fill.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The itinerary was outside of your basic parameters, so no price was pulled for the itinerary from either live query or cache fill."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceMissingCountDetails/itineraryBlockedCount",
            "sourceLocus": "Googlehotels.PriceMissingCountDetails.itineraryBlockedCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/itineraryBlockedCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceMissingCountDetails"
      }
    },
    "Googlehotels.PriceProblemCountDetails": {
      "name": "PriceProblemCountDetails",
      "namespace": "Googlehotels",
      "doc": "The reasons that contributed to the price problem count and the total count for each reason.",
      "decorators": {
        "doc": "The reasons that contributed to the price problem count and the total count for each reason."
      },
      "versioning": {},
      "properties": {
        "taxesAndFeesMissingCount": {
          "name": "taxesAndFeesMissingCount",
          "jsonName": "taxesAndFeesMissingCount",
          "doc": "Taxes and fees were missing from pricing.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Taxes and fees were missing from pricing."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/taxesAndFeesMissingCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.taxesAndFeesMissingCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/taxesAndFeesMissingCount"
          },
          "fidelityState": "PRESERVED"
        },
        "basePriceViolationsCount": {
          "name": "basePriceViolationsCount",
          "jsonName": "basePriceViolationsCount",
          "doc": "Base price too low relative to total price.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Base price too low relative to total price."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/basePriceViolationsCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.basePriceViolationsCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/basePriceViolationsCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceAccuracyIssueCount": {
          "name": "priceAccuracyIssueCount",
          "jsonName": "priceAccuracyIssueCount",
          "doc": "Price accuracy issue.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Price accuracy issue."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/priceAccuracyIssueCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.priceAccuracyIssueCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceAccuracyIssueCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceUnusuallyHighCount": {
          "name": "priceUnusuallyHighCount",
          "jsonName": "priceUnusuallyHighCount",
          "doc": "The price given for this itinerary seemed oddly high compared to regional trends.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The price given for this itinerary seemed oddly high compared to regional trends."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/priceUnusuallyHighCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.priceUnusuallyHighCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceUnusuallyHighCount"
          },
          "fidelityState": "PRESERVED"
        },
        "hotelSuspendedCount": {
          "name": "hotelSuspendedCount",
          "jsonName": "hotelSuspendedCount",
          "doc": "The hotel was suspended. This may be due to persistent problems in areas such as incorrect taxes and fees.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The hotel was suspended. This may be due to persistent problems in areas such as incorrect taxes and fees."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/hotelSuspendedCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.hotelSuspendedCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/hotelSuspendedCount"
          },
          "fidelityState": "PRESERVED"
        },
        "priceUnusuallyLowCount": {
          "name": "priceUnusuallyLowCount",
          "jsonName": "priceUnusuallyLowCount",
          "doc": "The price given for this itinerary seemed oddly low compared to regional trends.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The price given for this itinerary seemed oddly low compared to regional trends."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceProblemCountDetails/priceUnusuallyLowCount",
            "sourceLocus": "Googlehotels.PriceProblemCountDetails.priceUnusuallyLowCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/priceUnusuallyLowCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceProblemCountDetails"
      }
    },
    "Googlehotels.ParsedListing": {
      "name": "ParsedListing",
      "namespace": "Googlehotels",
      "doc": "A parsed listing",
      "decorators": {
        "doc": "A parsed listing"
      },
      "versioning": {},
      "properties": {
        "imprecisionRadiusMeters": {
          "name": "imprecisionRadiusMeters",
          "jsonName": "imprecisionRadiusMeters",
          "doc": "Represents the accuracy of the location. The listing can be anywhere within the defined circular area.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Represents the accuracy of the location. The listing can be anywhere within the defined circular area."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/imprecisionRadiusMeters",
            "sourceLocus": "Googlehotels.ParsedListing.imprecisionRadiusMeters",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/imprecisionRadiusMeters"
          },
          "fidelityState": "PRESERVED"
        },
        "unitAttributes": {
          "name": "unitAttributes",
          "jsonName": "unitAttributes",
          "doc": "VR List attribute.",
          "optional": true,
          "type": {
            "kind": "record",
            "valueType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "VR List attribute."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/unitAttributes",
            "sourceLocus": "Googlehotels.ParsedListing.unitAttributes",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/unitAttributes",
            "recordLowering": {
              "mode": "automatic",
              "sourceLocus": "Googlehotels.ParsedListing.unitAttributes",
              "mapAllowsNull": false,
              "valueAllowsNull": false,
              "containerClassUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/Container",
              "containerShapeUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/ContainerShape",
              "entryPropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/entry",
              "entryClassUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/Entry",
              "entryShapeUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/EntryShape",
              "keyPropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/key",
              "valuePropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/value",
              "preservesEmptyMap": true,
              "valueKind": "literal",
              "datatype": "http://www.w3.org/2001/XMLSchema#string"
            },
            "recordLoweringByVersion": {
              "v3": {
                "mode": "automatic",
                "sourceLocus": "Googlehotels.ParsedListing.unitAttributes",
                "mapAllowsNull": false,
                "valueAllowsNull": false,
                "containerClassUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/Container",
                "containerShapeUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/ContainerShape",
                "entryPropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/entry",
                "entryClassUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/Entry",
                "entryShapeUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/EntryShape",
                "keyPropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/key",
                "valuePropertyUri": "https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/value",
                "preservesEmptyMap": true,
                "valueKind": "literal",
                "datatype": "http://www.w3.org/2001/XMLSchema#string"
              }
            }
          },
          "fidelityState": "PRESERVED"
        },
        "partnerListId": {
          "name": "partnerListId",
          "jsonName": "partnerListId",
          "doc": "The list ID on partner LEC feed, provided by partner.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The list ID on partner LEC feed, provided by partner."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/partnerListId",
            "sourceLocus": "Googlehotels.ParsedListing.partnerListId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerListId"
          },
          "fidelityState": "PRESERVED"
        },
        "dataIssueDetail": {
          "name": "dataIssueDetail",
          "jsonName": "dataIssueDetail",
          "doc": "Data issues about this listing",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.DataIssueDetail"
            }
          },
          "decorators": {
            "doc": "Data issues about this listing"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/dataIssueDetail",
            "sourceLocus": "Googlehotels.ParsedListing.dataIssueDetail",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/dataIssueDetail"
          },
          "fidelityState": "PRESERVED"
        },
        "location": {
          "name": "location",
          "jsonName": "location",
          "doc": "Location of listing using latitude and longitude (degrees).",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.LatLng"
          },
          "decorators": {
            "doc": "Location of listing using latitude and longitude (degrees)."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/location",
            "sourceLocus": "Googlehotels.ParsedListing.location",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/location"
          },
          "fidelityState": "PRESERVED"
        },
        "review": {
          "name": "review",
          "jsonName": "review",
          "doc": "Reviews associated with this listing. Each review has a single language attached to it.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.Review"
            }
          },
          "decorators": {
            "doc": "Reviews associated with this listing. Each review has a single language attached to it."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/review",
            "sourceLocus": "Googlehotels.ParsedListing.review",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/review"
          },
          "fidelityState": "PRESERVED"
        },
        "brand": {
          "name": "brand",
          "jsonName": "brand",
          "doc": "If not empty, it indicates that this listing belongs to a brand of the feed.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "If not empty, it indicates that this listing belongs to a brand of the feed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/brand",
            "sourceLocus": "Googlehotels.ParsedListing.brand",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/brand"
          },
          "fidelityState": "PRESERVED"
        },
        "listingName": {
          "name": "listingName",
          "jsonName": "listingName",
          "doc": "List of localized names.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "List of localized names."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/listingName",
            "sourceLocus": "Googlehotels.ParsedListing.listingName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/listingName"
          },
          "fidelityState": "PRESERVED"
        },
        "description": {
          "name": "description",
          "jsonName": "description",
          "doc": "Description of the property.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "Description of the property."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/description",
            "sourceLocus": "Googlehotels.ParsedListing.description",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/description"
          },
          "fidelityState": "PRESERVED"
        },
        "image": {
          "name": "image",
          "jsonName": "image",
          "doc": "Images associated with this listing, localized.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.Image"
            }
          },
          "decorators": {
            "doc": "Images associated with this listing, localized."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/image",
            "sourceLocus": "Googlehotels.ParsedListing.image",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/image"
          },
          "fidelityState": "PRESERVED"
        },
        "category": {
          "name": "category",
          "jsonName": "category",
          "doc": "The partner provided category (accommodation type) of the property.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.LocalizedText"
            }
          },
          "decorators": {
            "doc": "The partner provided category (accommodation type) of the property."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/category",
            "sourceLocus": "Googlehotels.ParsedListing.category",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/category"
          },
          "fidelityState": "PRESERVED"
        },
        "isServed": {
          "name": "isServed",
          "jsonName": "isServed",
          "doc": "Whether the listing can be served based on non image data alone.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "Whether the listing can be served based on non image data alone."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/isServed",
            "sourceLocus": "Googlehotels.ParsedListing.isServed",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/isServed"
          },
          "fidelityState": "PRESERVED"
        },
        "regionCode": {
          "name": "regionCode",
          "jsonName": "regionCode",
          "doc": "The country code where the listing is located.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The country code where the listing is located."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParsedListing/regionCode",
            "sourceLocus": "Googlehotels.ParsedListing.regionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/regionCode"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ParsedListing"
      }
    },
    "Googlehotels.Review": {
      "name": "Review",
      "namespace": "Googlehotels",
      "doc": "A single review in a VR Listing. NEXT ID: 10",
      "decorators": {
        "doc": "A single review in a VR Listing. NEXT ID: 10"
      },
      "versioning": {},
      "properties": {
        "title": {
          "name": "title",
          "jsonName": "title",
          "doc": "The title of the review, for example: Great three bedrooms.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The title of the review, for example: Great three bedrooms."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/title",
            "sourceLocus": "Googlehotels.Review.title",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/title"
          },
          "fidelityState": "PRESERVED"
        },
        "link": {
          "name": "link",
          "jsonName": "link",
          "doc": "The url of the review.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The url of the review."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/link",
            "sourceLocus": "Googlehotels.Review.link",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/link"
          },
          "fidelityState": "PRESERVED"
        },
        "languageCode": {
          "name": "languageCode",
          "jsonName": "languageCode",
          "doc": "Language of the review in ISO639 format, such as \"en\", \"de\", etc.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Language of the review in ISO639 format, such as \"en\", \"de\", etc."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/languageCode",
            "sourceLocus": "Googlehotels.Review.languageCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/languageCode"
          },
          "fidelityState": "PRESERVED"
        },
        "author": {
          "name": "author",
          "jsonName": "author",
          "doc": "The author of the review.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The author of the review."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/author",
            "sourceLocus": "Googlehotels.Review.author",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/author"
          },
          "fidelityState": "PRESERVED"
        },
        "reviewTime": {
          "name": "reviewTime",
          "jsonName": "reviewTime",
          "doc": "Unix timestamp (in seconds) of the review, in UTC+0.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Unix timestamp (in seconds) of the review, in UTC+0."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/reviewTime",
            "sourceLocus": "Googlehotels.Review.reviewTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/reviewTime"
          },
          "fidelityState": "PRESERVED"
        },
        "body": {
          "name": "body",
          "jsonName": "body",
          "doc": "The body of the review.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "The body of the review."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/body",
            "sourceLocus": "Googlehotels.Review.body",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/body"
          },
          "fidelityState": "PRESERVED"
        },
        "visitTime": {
          "name": "visitTime",
          "jsonName": "visitTime",
          "doc": "Unix timestamp (in seconds) of when the stay was, in UTC+0.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Unix timestamp (in seconds) of when the stay was, in UTC+0."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/visitTime",
            "sourceLocus": "Googlehotels.Review.visitTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/visitTime"
          },
          "fidelityState": "PRESERVED"
        },
        "rating": {
          "name": "rating",
          "jsonName": "rating",
          "doc": "Any ratings associated with this review. This is repeated because reviews can include ratings on different aspects of a listing, e.g. location, cleanliness, etc.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.Rating"
            }
          },
          "decorators": {
            "doc": "Any ratings associated with this review. This is repeated because reviews can include ratings on different aspects of a listing, e.g. location, cleanliness, etc."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/rating",
            "sourceLocus": "Googlehotels.Review.rating",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/rating"
          },
          "fidelityState": "PRESERVED"
        },
        "type": {
          "name": "type",
          "jsonName": "type",
          "doc": "The type of the review.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.ReviewType"
          },
          "decorators": {
            "doc": "The type of the review."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Review/type",
            "sourceLocus": "Googlehotels.Review.type",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/type"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Review"
      }
    },
    "Googlehotels.Rating": {
      "name": "Rating",
      "namespace": "Googlehotels",
      "doc": "A rating for a vacation rentals listing. NEXT ID: 4",
      "decorators": {
        "doc": "A rating for a vacation rentals listing. NEXT ID: 4"
      },
      "versioning": {},
      "properties": {
        "score": {
          "name": "score",
          "jsonName": "score",
          "doc": "The rating score. (e.g. 8.5)",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float32",
            "scalarAncestry": [
              "float32",
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float32",
            "baseScalar": "float64"
          },
          "decorators": {
            "doc": "The rating score. (e.g. 8.5)"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Rating/score",
            "sourceLocus": "Googlehotels.Rating.score",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/score"
          },
          "fidelityState": "PRESERVED"
        },
        "ratingScale": {
          "name": "ratingScale",
          "jsonName": "ratingScale",
          "doc": "Maximum rating possible.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "Maximum rating possible."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Rating/ratingScale",
            "sourceLocus": "Googlehotels.Rating.ratingScale",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/ratingScale"
          },
          "fidelityState": "PRESERVED"
        },
        "type": {
          "name": "type",
          "jsonName": "type",
          "doc": "The type of the rating.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.RatingType"
          },
          "decorators": {
            "doc": "The type of the rating."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.Rating/type",
            "sourceLocus": "Googlehotels.Rating.type",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/type"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/Rating"
      }
    },
    "Googlehotels.ParticipationResult": {
      "name": "ParticipationResult",
      "namespace": "Googlehotels",
      "doc": "Represents a result from querying for participation stats for an account.",
      "decorators": {
        "doc": "Represents a result from querying for participation stats for an account."
      },
      "versioning": {},
      "properties": {
        "participationPercent": {
          "name": "participationPercent",
          "jsonName": "participationPercent",
          "doc": "The percentage rate of participation where the number of successfully participated opportunities is divided by the total number of opportunities. For example, if a property was eligible to enter the Google Ads auction 90 times out of 100 opportunities, the participation rate is 90%.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "The percentage rate of participation where the number of successfully participated opportunities is divided by the total number of opportunities. For example, if a property was eligible to enter the Google Ads auction 90 times out of 100 opportunities, the participation rate is 90%."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/participationPercent",
            "sourceLocus": "Googlehotels.ParticipationResult.participationPercent",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/participationPercent"
          },
          "fidelityState": "PRESERVED"
        },
        "participationCount": {
          "name": "participationCount",
          "jsonName": "participationCount",
          "doc": "The total number of opportunities for which you were eligible to enter in the Google Ads auction process.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of opportunities for which you were eligible to enter in the Google Ads auction process."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/participationCount",
            "sourceLocus": "Googlehotels.ParticipationResult.participationCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/participationCount"
          },
          "fidelityState": "PRESERVED"
        },
        "missedParticipationCount": {
          "name": "missedParticipationCount",
          "jsonName": "missedParticipationCount",
          "doc": "The total number of opportunities **not** eligible for the Google Ads auction process. Comprised of the following: * Landing page missing * Price missing * Price problem * Price unavailable * Other",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of opportunities **not** eligible for the Google Ads auction process. Comprised of the following: * Landing page missing * Price missing * Price problem * Price unavailable * Other"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/missedParticipationCount",
            "sourceLocus": "Googlehotels.ParticipationResult.missedParticipationCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/missedParticipationCount"
          },
          "fidelityState": "PRESERVED"
        },
        "partnerHotelDisplayName": {
          "name": "partnerHotelDisplayName",
          "jsonName": "partnerHotelDisplayName",
          "doc": "Partner's hotel display name. This field is only populated when the result is aggregated by `partnerHotelId`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's hotel display name. This field is only populated when the result is aggregated by `partnerHotelId`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/partnerHotelDisplayName",
            "sourceLocus": "Googlehotels.ParticipationResult.partnerHotelDisplayName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelDisplayName"
          },
          "fidelityState": "PRESERVED"
        },
        "opportunityCount": {
          "name": "opportunityCount",
          "jsonName": "opportunityCount",
          "doc": "For a specific hotel, the total number of opportunities that were available. Opportunities are the total number of instances when a hotel ad could have been displayed to a user.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "For a specific hotel, the total number of opportunities that were available. Opportunities are the total number of instances when a hotel ad could have been displayed to a user."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/opportunityCount",
            "sourceLocus": "Googlehotels.ParticipationResult.opportunityCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/opportunityCount"
          },
          "fidelityState": "PRESERVED"
        },
        "key": {
          "name": "key",
          "jsonName": "key",
          "doc": "Key of the result.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Key"
          },
          "decorators": {
            "doc": "Key of the result."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/key",
            "sourceLocus": "Googlehotels.ParticipationResult.key",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/key"
          },
          "fidelityState": "PRESERVED"
        },
        "missedParticipationCountDetails": {
          "name": "missedParticipationCountDetails",
          "jsonName": "missedParticipationCountDetails",
          "doc": "The reasons that contributed to the missed participation count (for example, no availability) and a total count for each reason.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.MissedParticipationCountDetails"
          },
          "decorators": {
            "doc": "The reasons that contributed to the missed participation count (for example, no availability) and a total count for each reason."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ParticipationResult/missedParticipationCountDetails",
            "sourceLocus": "Googlehotels.ParticipationResult.missedParticipationCountDetails",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/missedParticipationCountDetails"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ParticipationResult"
      }
    },
    "Googlehotels.PriceView": {
      "name": "PriceView",
      "namespace": "Googlehotels",
      "doc": "A price view. Covers the Prices functionality in pre-v3.0 API versions.",
      "decorators": {
        "doc": "A price view. Covers the Prices functionality in pre-v3.0 API versions."
      },
      "versioning": {},
      "properties": {
        "name": {
          "name": "name",
          "jsonName": "name",
          "doc": "Resource name in the format `accounts/{account_id}/priceViews/{partner_hotel_id}`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Resource name in the format `accounts/{account_id}/priceViews/{partner_hotel_id}`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceView/name",
            "sourceLocus": "Googlehotels.PriceView.name",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/name"
          },
          "fidelityState": "PRESERVED"
        },
        "perItineraryPrices": {
          "name": "perItineraryPrices",
          "jsonName": "perItineraryPrices",
          "doc": "Price for each itinerary.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.HotelPricePerItinerary"
            }
          },
          "decorators": {
            "doc": "Price for each itinerary."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PriceView/perItineraryPrices",
            "sourceLocus": "Googlehotels.PriceView.perItineraryPrices",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/perItineraryPrices"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PriceView"
      }
    },
    "Googlehotels.PropertyPerformanceResult": {
      "name": "PropertyPerformanceResult",
      "namespace": "Googlehotels",
      "doc": "Represents a result from querying for the property performance report for an account.",
      "decorators": {
        "doc": "Represents a result from querying for the property performance report for an account."
      },
      "versioning": {},
      "properties": {
        "deviceType": {
          "name": "deviceType",
          "jsonName": "deviceType",
          "doc": "The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PropertyPerformanceResultDeviceType"
          },
          "decorators": {
            "doc": "The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/deviceType",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.deviceType",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/deviceType"
          },
          "fidelityState": "PRESERVED"
        },
        "propertyRegionCode": {
          "name": "propertyRegionCode",
          "jsonName": "propertyRegionCode",
          "doc": "ISO 3116 region code of the country/region of the property. Only present if `propertyRegionCode` is specified in `aggregateBy` in the request",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "ISO 3116 region code of the country/region of the property. Only present if `propertyRegionCode` is specified in `aggregateBy` in the request"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/propertyRegionCode",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.propertyRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/propertyRegionCode"
          },
          "fidelityState": "PRESERVED"
        },
        "adsImpressionCount": {
          "name": "adsImpressionCount",
          "jsonName": "adsImpressionCount",
          "doc": "The total number of ad impressions that were recorded for this result.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of ad impressions that were recorded for this result."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/adsImpressionCount",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.adsImpressionCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/adsImpressionCount",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/countValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "adsClickthroughRate": {
          "name": "adsClickthroughRate",
          "jsonName": "adsClickthroughRate",
          "doc": "Equal to `ads_click_count` divided by `ads_impression_count`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "Equal to `ads_click_count` divided by `ads_impression_count`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/adsClickthroughRate",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.adsClickthroughRate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/adsClickthroughRate",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/ratioValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "vrWebsiteButtonClicks": {
          "name": "vrWebsiteButtonClicks",
          "jsonName": "vrWebsiteButtonClicks",
          "doc": "The total number of clicks on the \"Website\" button on Google for vacation rentals.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of clicks on the \"Website\" button on Google for vacation rentals."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/vrWebsiteButtonClicks",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.vrWebsiteButtonClicks",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/vrWebsiteButtonClicks"
          },
          "fidelityState": "PRESERVED"
        },
        "occupancy": {
          "name": "occupancy",
          "jsonName": "occupancy",
          "doc": "Requested number of people staying at the property. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PropertyPerformanceResultOccupancy"
          },
          "decorators": {
            "doc": "Requested number of people staying at the property. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/occupancy",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.occupancy",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/occupancy"
          },
          "fidelityState": "PRESERVED"
        },
        "advanceBookingWindow": {
          "name": "advanceBookingWindow",
          "jsonName": "advanceBookingWindow",
          "doc": "Difference in days between query date and check-in date in property's local timezone. Only present if `advanceBookingWindow` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PropertyPerformanceResultAdvanceBookingWindow"
          },
          "decorators": {
            "doc": "Difference in days between query date and check-in date in property's local timezone. Only present if `advanceBookingWindow` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/advanceBookingWindow",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.advanceBookingWindow",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/advanceBookingWindow"
          },
          "fidelityState": "PRESERVED"
        },
        "brand": {
          "name": "brand",
          "jsonName": "brand",
          "doc": "Partner-specified brand for the property. Only present if `brand` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner-specified brand for the property. Only present if `brand` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/brand",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.brand",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/brand"
          },
          "fidelityState": "PRESERVED"
        },
        "partnerPropertyDisplayName": {
          "name": "partnerPropertyDisplayName",
          "jsonName": "partnerPropertyDisplayName",
          "doc": "Partner's property name. Only present if `partnerPropertyDisplayName` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's property name. Only present if `partnerPropertyDisplayName` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/partnerPropertyDisplayName",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.partnerPropertyDisplayName",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerPropertyDisplayName"
          },
          "fidelityState": "PRESERVED"
        },
        "userRegionCode": {
          "name": "userRegionCode",
          "jsonName": "userRegionCode",
          "doc": "ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request"
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/userRegionCode",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.userRegionCode",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/userRegionCode"
          },
          "fidelityState": "PRESERVED"
        },
        "adsClickCount": {
          "name": "adsClickCount",
          "jsonName": "adsClickCount",
          "doc": "The total number of ad clicks that were recorded for this result.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of ad clicks that were recorded for this result."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/adsClickCount",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.adsClickCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/adsClickCount",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/countValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "clickCount": {
          "name": "clickCount",
          "jsonName": "clickCount",
          "doc": "The total number of free booking link clicks that were recorded for this result.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of free booking link clicks that were recorded for this result."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/clickCount",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.clickCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/clickCount",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/countValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "highIntentUsers": {
          "name": "highIntentUsers",
          "jsonName": "highIntentUsers",
          "doc": "Whether the user’s query indicated a strong interest in booking. Only present if `highIntentUsers` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "Whether the user’s query indicated a strong interest in booking. Only present if `highIntentUsers` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/highIntentUsers",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.highIntentUsers",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/highIntentUsers"
          },
          "fidelityState": "PRESERVED"
        },
        "impressionCount": {
          "name": "impressionCount",
          "jsonName": "impressionCount",
          "doc": "The total number of free booking link impressions that were recorded for this result. This value is rounded to preserve user privacy.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The total number of free booking link impressions that were recorded for this result. This value is rounded to preserve user privacy."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/impressionCount",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.impressionCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/impressionCount",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/countValue"
            ]
          },
          "fidelityState": "PRESERVED"
        },
        "date": {
          "name": "date",
          "jsonName": "date",
          "doc": "A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.Date"
          },
          "decorators": {
            "doc": "A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/date",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.date",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/date"
          },
          "fidelityState": "PRESERVED"
        },
        "lengthOfStay": {
          "name": "lengthOfStay",
          "jsonName": "lengthOfStay",
          "doc": "Number of nights between check-in and check-out dates specified by user. Only present if `lengthOfStay` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.PropertyPerformanceResultLengthOfStay"
          },
          "decorators": {
            "doc": "Number of nights between check-in and check-out dates specified by user. Only present if `lengthOfStay` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/lengthOfStay",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.lengthOfStay",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lengthOfStay"
          },
          "fidelityState": "PRESERVED"
        },
        "partnerPropertyId": {
          "name": "partnerPropertyId",
          "jsonName": "partnerPropertyId",
          "doc": "Partner's property ID. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Partner's property ID. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/partnerPropertyId",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.partnerPropertyId",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerPropertyId"
          },
          "fidelityState": "PRESERVED"
        },
        "clickthroughRate": {
          "name": "clickthroughRate",
          "jsonName": "clickthroughRate",
          "doc": "Equal to `click_count` divided by `impression_count`.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "float64",
            "scalarAncestry": [
              "float64",
              "float",
              "numeric"
            ],
            "builtInKind": "float64",
            "baseScalar": "float"
          },
          "decorators": {
            "doc": "Equal to `click_count` divided by `impression_count`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.PropertyPerformanceResult/clickthroughRate",
            "sourceLocus": "Googlehotels.PropertyPerformanceResult.clickthroughRate",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/clickthroughRate",
            "authoredSuperPropertyUris": [
              "https://ontology.inferal.com/modules/advertising-measurement/ratioValue"
            ]
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/PropertyPerformanceResult"
      }
    },
    "Googlehotels.QueryFreeBookingLinksReportResponse": {
      "name": "QueryFreeBookingLinksReportResponse",
      "namespace": "Googlehotels",
      "doc": "**DEPRECATED:** Use `QueryPropertyPerformanceReportResponse` with `PropertyPerformanceReportService` instead. Response message for FreeBookingLinksReportService.QueryFreeBookingLinksReport.",
      "decorators": {
        "doc": "**DEPRECATED:** Use `QueryPropertyPerformanceReportResponse` with `PropertyPerformanceReportService` instead. Response message for FreeBookingLinksReportService.QueryFreeBookingLinksReport."
      },
      "versioning": {},
      "properties": {
        "results": {
          "name": "results",
          "jsonName": "results",
          "doc": "The list of results that match the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.FreeBookingLinksResult"
            }
          },
          "decorators": {
            "doc": "The list of results that match the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryFreeBookingLinksReportResponse/results",
            "sourceLocus": "Googlehotels.QueryFreeBookingLinksReportResponse.results",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/results"
          },
          "fidelityState": "PRESERVED"
        },
        "nextPageToken": {
          "name": "nextPageToken",
          "jsonName": "nextPageToken",
          "doc": "Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryFreeBookingLinksReportResponse/nextPageToken",
            "sourceLocus": "Googlehotels.QueryFreeBookingLinksReportResponse.nextPageToken",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/nextPageToken"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/QueryFreeBookingLinksReportResponse"
      }
    },
    "Googlehotels.QueryParticipationReportResponse": {
      "name": "QueryParticipationReportResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for ParticipationReportService.QueryParticipationReport.",
      "decorators": {
        "doc": "Response message for ParticipationReportService.QueryParticipationReport."
      },
      "versioning": {},
      "properties": {
        "nextPageToken": {
          "name": "nextPageToken",
          "jsonName": "nextPageToken",
          "doc": "Pagination token used to retrieve the next page of results.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Pagination token used to retrieve the next page of results."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryParticipationReportResponse/nextPageToken",
            "sourceLocus": "Googlehotels.QueryParticipationReportResponse.nextPageToken",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/nextPageToken"
          },
          "fidelityState": "PRESERVED"
        },
        "results": {
          "name": "results",
          "jsonName": "results",
          "doc": "The list of results that matches the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.ParticipationResult"
            }
          },
          "decorators": {
            "doc": "The list of results that matches the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryParticipationReportResponse/results",
            "sourceLocus": "Googlehotels.QueryParticipationReportResponse.results",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/results"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/QueryParticipationReportResponse"
      }
    },
    "Googlehotels.QueryPropertyPerformanceReportResponse": {
      "name": "QueryPropertyPerformanceReportResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for PropertyPerformanceReportService.QueryPropertyPerformanceReport.",
      "decorators": {
        "doc": "Response message for PropertyPerformanceReportService.QueryPropertyPerformanceReport."
      },
      "versioning": {},
      "properties": {
        "results": {
          "name": "results",
          "jsonName": "results",
          "doc": "The list of results that match the query.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.PropertyPerformanceResult"
            }
          },
          "decorators": {
            "doc": "The list of results that match the query."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryPropertyPerformanceReportResponse/results",
            "sourceLocus": "Googlehotels.QueryPropertyPerformanceReportResponse.results",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/results"
          },
          "fidelityState": "PRESERVED"
        },
        "nextPageToken": {
          "name": "nextPageToken",
          "jsonName": "nextPageToken",
          "doc": "Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.QueryPropertyPerformanceReportResponse/nextPageToken",
            "sourceLocus": "Googlehotels.QueryPropertyPerformanceReportResponse.nextPageToken",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/nextPageToken"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/QueryPropertyPerformanceReportResponse"
      }
    },
    "Googlehotels.SetLiveOnGoogleRequest": {
      "name": "SetLiveOnGoogleRequest",
      "namespace": "Googlehotels",
      "doc": "Request message for HotelService.SetLiveOnGoogle.",
      "decorators": {
        "doc": "Request message for HotelService.SetLiveOnGoogle."
      },
      "versioning": {},
      "properties": {
        "partnerHotelIds": {
          "name": "partnerHotelIds",
          "jsonName": "partnerHotelIds",
          "doc": "Required. Identifies the properties to update with the liveOnGoogle setting.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "Required. Identifies the properties to update with the liveOnGoogle setting."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SetLiveOnGoogleRequest/partnerHotelIds",
            "sourceLocus": "Googlehotels.SetLiveOnGoogleRequest.partnerHotelIds",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/partnerHotelIds"
          },
          "fidelityState": "PRESERVED"
        },
        "liveOnGoogleStatus": {
          "name": "liveOnGoogleStatus",
          "jsonName": "liveOnGoogleStatus",
          "doc": "Optional. Whether the property will show on Google, with more granular controls than the original `live_on_google` boolean field. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used. **Note:** This field should be enclosed in quotes. For example, `\"LIVE_ON_GOOGLE_STATUS_INACTIVE\"`.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SetLiveOnGoogleRequestLiveOnGoogleStatus"
          },
          "decorators": {
            "doc": "Optional. Whether the property will show on Google, with more granular controls than the original `live_on_google` boolean field. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used. **Note:** This field should be enclosed in quotes. For example, `\"LIVE_ON_GOOGLE_STATUS_INACTIVE\"`."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SetLiveOnGoogleRequest/liveOnGoogleStatus",
            "sourceLocus": "Googlehotels.SetLiveOnGoogleRequest.liveOnGoogleStatus",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/liveOnGoogleStatus"
          },
          "fidelityState": "PRESERVED"
        },
        "liveOnGoogle": {
          "name": "liveOnGoogle",
          "jsonName": "liveOnGoogle",
          "doc": "Optional. DEPRECATED. Whether the property will show on Google. When true, Google will show the properties if their integration is complete and the property is available. When false, Google will never show the properties. Superseded by `live_on_google_status`. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "boolean",
            "scalarAncestry": [
              "boolean"
            ],
            "builtInKind": "boolean"
          },
          "decorators": {
            "doc": "Optional. DEPRECATED. Whether the property will show on Google. When true, Google will show the properties if their integration is complete and the property is available. When false, Google will never show the properties. Superseded by `live_on_google_status`. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SetLiveOnGoogleRequest/liveOnGoogle",
            "sourceLocus": "Googlehotels.SetLiveOnGoogleRequest.liveOnGoogle",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/liveOnGoogle"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/SetLiveOnGoogleRequest"
      }
    },
    "Googlehotels.SetLiveOnGoogleResponse": {
      "name": "SetLiveOnGoogleResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for HotelService.SetLiveOnGoogle.",
      "decorators": {
        "doc": "Response message for HotelService.SetLiveOnGoogle."
      },
      "versioning": {},
      "properties": {
        "updatedHotelIds": {
          "name": "updatedHotelIds",
          "jsonName": "updatedHotelIds",
          "doc": "Identifies the updated properties.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "Identifies the updated properties."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SetLiveOnGoogleResponse/updatedHotelIds",
            "sourceLocus": "Googlehotels.SetLiveOnGoogleResponse.updatedHotelIds",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/updatedHotelIds"
          },
          "fidelityState": "PRESERVED"
        },
        "failedHotelIds": {
          "name": "failedHotelIds",
          "jsonName": "failedHotelIds",
          "doc": "Identifies properties that Google could not update.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "scalar",
              "name": "string",
              "scalarAncestry": [
                "string"
              ],
              "builtInKind": "string"
            }
          },
          "decorators": {
            "doc": "Identifies properties that Google could not update."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SetLiveOnGoogleResponse/failedHotelIds",
            "sourceLocus": "Googlehotels.SetLiveOnGoogleResponse.failedHotelIds",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/failedHotelIds"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/SetLiveOnGoogleResponse"
      }
    },
    "Googlehotels.SummarizeHotelViewsResponse": {
      "name": "SummarizeHotelViewsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for HotelViewService.SummarizeHotelViews.",
      "decorators": {
        "doc": "Response message for HotelViewService.SummarizeHotelViews."
      },
      "versioning": {},
      "properties": {
        "lastManifestUpdateTime": {
          "name": "lastManifestUpdateTime",
          "jsonName": "lastManifestUpdateTime",
          "doc": "Timestamp of the last hotel manifest update.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Timestamp of the last hotel manifest update."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/lastManifestUpdateTime",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.lastManifestUpdateTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lastManifestUpdateTime"
          },
          "fidelityState": "PRESERVED"
        },
        "lastFeedSubmissionTime": {
          "name": "lastFeedSubmissionTime",
          "jsonName": "lastFeedSubmissionTime",
          "doc": "Timestamp of the last hotel feed submission.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "Timestamp of the last hotel feed submission."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/lastFeedSubmissionTime",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.lastFeedSubmissionTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/lastFeedSubmissionTime"
          },
          "fidelityState": "PRESERVED"
        },
        "unmatchedPropertyWithErrorsCount": {
          "name": "unmatchedPropertyWithErrorsCount",
          "jsonName": "unmatchedPropertyWithErrorsCount",
          "doc": "The number of unmatched properties that have data-related errors.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of unmatched properties that have data-related errors."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/unmatchedPropertyWithErrorsCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.unmatchedPropertyWithErrorsCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/unmatchedPropertyWithErrorsCount"
          },
          "fidelityState": "PRESERVED"
        },
        "overclusteredPropertyCount": {
          "name": "overclusteredPropertyCount",
          "jsonName": "overclusteredPropertyCount",
          "doc": "The number of hotels that are considered overclustered.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of hotels that are considered overclustered."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/overclusteredPropertyCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.overclusteredPropertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/overclusteredPropertyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "overclusteredPropertyWithErrorsCount": {
          "name": "overclusteredPropertyWithErrorsCount",
          "jsonName": "overclusteredPropertyWithErrorsCount",
          "doc": "The number of overclustered properties that have data-related errors.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of overclustered properties that have data-related errors."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/overclusteredPropertyWithErrorsCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.overclusteredPropertyWithErrorsCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/overclusteredPropertyWithErrorsCount"
          },
          "fidelityState": "PRESERVED"
        },
        "unmatchedPropertyCount": {
          "name": "unmatchedPropertyCount",
          "jsonName": "unmatchedPropertyCount",
          "doc": "The number of properties that are considered unmatched.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of properties that are considered unmatched."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/unmatchedPropertyCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.unmatchedPropertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/unmatchedPropertyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "matchedPropertyCount": {
          "name": "matchedPropertyCount",
          "jsonName": "matchedPropertyCount",
          "doc": "The number of properties that match Google's manifest.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of properties that match Google's manifest."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/matchedPropertyCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.matchedPropertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/matchedPropertyCount"
          },
          "fidelityState": "PRESERVED"
        },
        "liveOnGooglePropertyCount": {
          "name": "liveOnGooglePropertyCount",
          "jsonName": "liveOnGooglePropertyCount",
          "doc": "The number of properties that are Live on Google. This includes properties that are conditionally active, e.g. LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "Googlehotels.Int64AsString",
            "scalarAncestry": [
              "Googlehotels.Int64AsString",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int64",
            "encoding": {
              "type": "TypeSpec.string"
            },
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of properties that are Live on Google. This includes properties that are conditionally active, e.g. LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizeHotelViewsResponse/liveOnGooglePropertyCount",
            "sourceLocus": "Googlehotels.SummarizeHotelViewsResponse.liveOnGooglePropertyCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/liveOnGooglePropertyCount"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/SummarizeHotelViewsResponse"
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponse": {
      "name": "SummarizePriceAccuracyResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for PriceAccuracyViewService.SummarizePriceAccuracy.",
      "decorators": {
        "doc": "Response message for PriceAccuracyViewService.SummarizePriceAccuracy."
      },
      "versioning": {},
      "properties": {
        "predictedBookOnGoogleScore": {
          "name": "predictedBookOnGoogleScore",
          "jsonName": "predictedBookOnGoogleScore",
          "doc": "The predicted Book on Google price accuracy score.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponsePredictedBookOnGoogleScore"
          },
          "decorators": {
            "doc": "The predicted Book on Google price accuracy score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/predictedBookOnGoogleScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.predictedBookOnGoogleScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/predictedBookOnGoogleScore"
          },
          "fidelityState": "PRESERVED"
        },
        "currentBookOnGoogleScore": {
          "name": "currentBookOnGoogleScore",
          "jsonName": "currentBookOnGoogleScore",
          "doc": "The current Book on Google price accuracy score.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponseCurrentBookOnGoogleScore"
          },
          "decorators": {
            "doc": "The current Book on Google price accuracy score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/currentBookOnGoogleScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.currentBookOnGoogleScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currentBookOnGoogleScore"
          },
          "fidelityState": "PRESERVED"
        },
        "currentOverallScore": {
          "name": "currentOverallScore",
          "jsonName": "currentOverallScore",
          "doc": "The current price accuracy score combining both website and Book on Google scores.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponseCurrentOverallScore"
          },
          "decorators": {
            "doc": "The current price accuracy score combining both website and Book on Google scores."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/currentOverallScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.currentOverallScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currentOverallScore"
          },
          "fidelityState": "PRESERVED"
        },
        "predictedOverallScore": {
          "name": "predictedOverallScore",
          "jsonName": "predictedOverallScore",
          "doc": "The predicted price accuracy score combining both website and Book on Google scores.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponsePredictedOverallScore"
          },
          "decorators": {
            "doc": "The predicted price accuracy score combining both website and Book on Google scores."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/predictedOverallScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.predictedOverallScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/predictedOverallScore"
          },
          "fidelityState": "PRESERVED"
        },
        "updateTime": {
          "name": "updateTime",
          "jsonName": "updateTime",
          "doc": "The update timestamp for the current score.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "utcDateTime",
            "scalarAncestry": [
              "utcDateTime"
            ],
            "builtInKind": "utcDateTime"
          },
          "decorators": {
            "doc": "The update timestamp for the current score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/updateTime",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.updateTime",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/updateTime"
          },
          "fidelityState": "PRESERVED"
        },
        "currentWebsiteScore": {
          "name": "currentWebsiteScore",
          "jsonName": "currentWebsiteScore",
          "doc": "The current website price accuracy score.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponseCurrentWebsiteScore"
          },
          "decorators": {
            "doc": "The current website price accuracy score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/currentWebsiteScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.currentWebsiteScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currentWebsiteScore"
          },
          "fidelityState": "PRESERVED"
        },
        "predictedWebsiteScore": {
          "name": "predictedWebsiteScore",
          "jsonName": "predictedWebsiteScore",
          "doc": "The predicted website price accuracy score.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponsePredictedWebsiteScore"
          },
          "decorators": {
            "doc": "The predicted website price accuracy score."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/predictedWebsiteScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.predictedWebsiteScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/predictedWebsiteScore"
          },
          "fidelityState": "PRESERVED"
        },
        "currentScore": {
          "name": "currentScore",
          "jsonName": "currentScore",
          "doc": "The current price accuracy score. Contains the same value as `current_website_score`. For clarity, use either `current_website_score` or 'current_overall_score` depending upon which is needed.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponseCurrentScore"
          },
          "decorators": {
            "doc": "The current price accuracy score. Contains the same value as `current_website_score`. For clarity, use either `current_website_score` or 'current_overall_score` depending upon which is needed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/currentScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.currentScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/currentScore"
          },
          "fidelityState": "PRESERVED"
        },
        "predictedScore": {
          "name": "predictedScore",
          "jsonName": "predictedScore",
          "doc": "The predicted price accuracy score. Contains the same value as `predicted_website_score`. For clarity, use either `predicted_website_score` or 'predicted_overall_score` depending upon which is needed.",
          "optional": true,
          "type": {
            "kind": "enum",
            "name": "Googlehotels.SummarizePriceAccuracyResponsePredictedScore"
          },
          "decorators": {
            "doc": "The predicted price accuracy score. Contains the same value as `predicted_website_score`. For clarity, use either `predicted_website_score` or 'predicted_overall_score` depending upon which is needed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.SummarizePriceAccuracyResponse/predictedScore",
            "sourceLocus": "Googlehotels.SummarizePriceAccuracyResponse.predictedScore",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/predictedScore"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/SummarizePriceAccuracyResponse"
      }
    },
    "Googlehotels.ValidateReconciliationReportResponse": {
      "name": "ValidateReconciliationReportResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for ReconciliationReportService.ValidateReconciliationReport.",
      "decorators": {
        "doc": "Response message for ReconciliationReportService.ValidateReconciliationReport."
      },
      "versioning": {},
      "properties": {
        "successfulRecordCount": {
          "name": "successfulRecordCount",
          "jsonName": "successfulRecordCount",
          "doc": "The number of commission records that were successfully validated.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "int32",
            "scalarAncestry": [
              "int32",
              "int64",
              "integer",
              "numeric"
            ],
            "builtInKind": "int32",
            "baseScalar": "int64"
          },
          "decorators": {
            "doc": "The number of commission records that were successfully validated."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ValidateReconciliationReportResponse/successfulRecordCount",
            "sourceLocus": "Googlehotels.ValidateReconciliationReportResponse.successfulRecordCount",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/successfulRecordCount"
          },
          "fidelityState": "PRESERVED"
        },
        "issues": {
          "name": "issues",
          "jsonName": "issues",
          "doc": "Issues that were encountered when validating the file.",
          "optional": true,
          "type": {
            "kind": "array",
            "elementType": {
              "kind": "model",
              "name": "Googlehotels.ReconciliationReportValidationIssue"
            }
          },
          "decorators": {
            "doc": "Issues that were encountered when validating the file."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.ValidateReconciliationReportResponse/issues",
            "sourceLocus": "Googlehotels.ValidateReconciliationReportResponse.issues",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/issues"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/ValidateReconciliationReportResponse"
      }
    },
    "Googlehotels.VerifyListingsRequest": {
      "name": "VerifyListingsRequest",
      "namespace": "Googlehotels",
      "doc": "Request message for VRPartnerListingVerificationService.VerifyPartnerListings.",
      "decorators": {
        "doc": "Request message for VRPartnerListingVerificationService.VerifyPartnerListings."
      },
      "versioning": {},
      "properties": {
        "xmlListing": {
          "name": "xmlListing",
          "jsonName": "xmlListing",
          "doc": "A listing that follows the XML format specified in https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed.",
          "optional": true,
          "type": {
            "kind": "scalar",
            "name": "string",
            "scalarAncestry": [
              "string"
            ],
            "builtInKind": "string"
          },
          "decorators": {
            "doc": "A listing that follows the XML format specified in https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.VerifyListingsRequest/xmlListing",
            "sourceLocus": "Googlehotels.VerifyListingsRequest.xmlListing",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/xmlListing"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/VerifyListingsRequest"
      }
    },
    "Googlehotels.VerifyListingsResponse": {
      "name": "VerifyListingsResponse",
      "namespace": "Googlehotels",
      "doc": "Response message for VRPartnerListingVerificationService.VerifyPartnerListings.",
      "decorators": {
        "doc": "Response message for VRPartnerListingVerificationService.VerifyPartnerListings."
      },
      "versioning": {},
      "properties": {
        "parsedListing": {
          "name": "parsedListing",
          "jsonName": "parsedListing",
          "doc": "The parsed listing output.",
          "optional": true,
          "type": {
            "kind": "model",
            "name": "Googlehotels.ParsedListing"
          },
          "decorators": {
            "doc": "The parsed listing output."
          },
          "constraints": {},
          "versioning": {},
          "reference": null,
          "rdf": {
            "propertyUri": "https://relay.inferal.com/ontology/googlehotels/property/Googlehotels.VerifyListingsResponse/parsedListing",
            "sourceLocus": "Googlehotels.VerifyListingsResponse.parsedListing",
            "propertyTermScope": "model",
            "superPropertyUri": "https://relay.inferal.com/ontology/googlehotels/property/parsedListing"
          },
          "fidelityState": "PRESERVED"
        }
      },
      "relationships": [],
      "rdf": {
        "classUri": "https://relay.inferal.com/ontology/googlehotels/VerifyListingsResponse"
      }
    }
  },
  "enums": {
    "InferalRelay.SignatureAlgorithm": {
      "name": "SignatureAlgorithm",
      "namespace": "InferalRelay",
      "doc": "Signature algorithm for webhook verification.",
      "decorators": {},
      "versioning": {},
      "members": {
        "hmacSha1": {
          "name": "hmacSha1",
          "value": "hmac-sha1",
          "doc": "HMAC with SHA-1 (legacy, not recommended)",
          "versioning": {}
        },
        "hmacSha256": {
          "name": "hmacSha256",
          "value": "hmac-sha256",
          "doc": "HMAC with SHA-256 (recommended)",
          "versioning": {}
        }
      }
    },
    "InferalRelay.SignatureEncoding": {
      "name": "SignatureEncoding",
      "namespace": "InferalRelay",
      "doc": "Encoding format for the signature.",
      "decorators": {},
      "versioning": {},
      "members": {
        "hex": {
          "name": "hex",
          "value": "hex",
          "doc": "Hexadecimal encoding",
          "versioning": {}
        },
        "base64": {
          "name": "base64",
          "value": "base64",
          "doc": "Base64 encoding",
          "versioning": {}
        }
      }
    },
    "InferalRelay.WebhookPlatform": {
      "name": "WebhookPlatform",
      "namespace": "InferalRelay",
      "doc": "Known webhook platform identifiers.",
      "decorators": {},
      "versioning": {},
      "members": {
        "woocommerce": {
          "name": "woocommerce",
          "value": "woocommerce",
          "doc": "WooCommerce - HMAC-SHA256, base64, X-WC-Webhook-Signature",
          "versioning": {}
        },
        "shopify": {
          "name": "shopify",
          "value": "shopify",
          "doc": "Shopify - HMAC-SHA256, base64, X-Shopify-Hmac-SHA256",
          "versioning": {}
        },
        "github": {
          "name": "github",
          "value": "github",
          "doc": "GitHub - HMAC-SHA256, hex with sha256= prefix, X-Hub-Signature-256",
          "versioning": {}
        },
        "slack": {
          "name": "slack",
          "value": "slack",
          "doc": "Slack - HMAC-SHA256, hex with v0= prefix, timestamp in base string",
          "versioning": {}
        },
        "stripe": {
          "name": "stripe",
          "value": "stripe",
          "doc": "Stripe - HMAC-SHA256, hex with t= and v1= format",
          "versioning": {}
        },
        "twilio": {
          "name": "twilio",
          "value": "twilio",
          "doc": "Twilio - HMAC-SHA1, base64, X-Twilio-Signature",
          "versioning": {}
        }
      }
    },
    "InferalRelay.WriteLifecycle": {
      "name": "WriteLifecycle",
      "namespace": "InferalRelay",
      "doc": "Provider write behavior carried by one field.\n\nAbsence means the provider behavior has not been classified. It does not\nimply that the field is writable.",
      "decorators": {},
      "versioning": {},
      "members": {
        "Writable": {
          "name": "Writable",
          "doc": "Accepted by the provider during create and update operations.",
          "versioning": {}
        },
        "CreateOnly": {
          "name": "CreateOnly",
          "doc": "Accepted during create and rejected during update.",
          "versioning": {}
        },
        "UpdateOnly": {
          "name": "UpdateOnly",
          "doc": "Rejected during create and accepted during update.",
          "versioning": {}
        },
        "ReadOnly": {
          "name": "ReadOnly",
          "doc": "Returned by the provider and rejected during create and update.",
          "versioning": {}
        }
      }
    },
    "InferalRelay.GraphQL": {
      "name": "GraphQL",
      "namespace": "InferalRelay",
      "doc": "GraphQL visibility class.\n\nUse with `@Visibility.invisible` to control GraphQL emission behavior.",
      "decorators": {},
      "versioning": {},
      "members": {
        "Relay": {
          "name": "Relay",
          "doc": "Relay Connection/Edge type generation.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.AccountLinkStatus": {
      "name": "AccountLinkStatus",
      "namespace": "Googlehotels",
      "doc": "Values AccountLink.status accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "accountLinkStatusUnspecified": {
          "name": "accountLinkStatusUnspecified",
          "value": "ACCOUNT_LINK_STATUS_UNSPECIFIED",
          "doc": "Default value.",
          "versioning": {}
        },
        "accountLinkStatusUnknown": {
          "name": "accountLinkStatusUnknown",
          "value": "ACCOUNT_LINK_STATUS_UNKNOWN",
          "doc": "The account link status is not recognized by this API version.",
          "versioning": {}
        },
        "requestedFromHotelCenter": {
          "name": "requestedFromHotelCenter",
          "value": "REQUESTED_FROM_HOTEL_CENTER",
          "doc": "The account link was initiated through Hotel Center and has not yet been approved in Google Ads.",
          "versioning": {}
        },
        "requestedFromGoogleAds": {
          "name": "requestedFromGoogleAds",
          "value": "REQUESTED_FROM_GOOGLE_ADS",
          "doc": "The account link was initiated through Google Ads and has not yet been approved in Hotel Center.",
          "versioning": {}
        },
        "approved": {
          "name": "approved",
          "value": "APPROVED",
          "doc": "The account link has been approved.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.BrandIconState": {
      "name": "BrandIconState",
      "namespace": "Googlehotels",
      "doc": "Values Brand.iconState accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "reviewStateUnspecified": {
          "name": "reviewStateUnspecified",
          "value": "REVIEW_STATE_UNSPECIFIED",
          "doc": "Default value.",
          "versioning": {}
        },
        "reviewStateNew": {
          "name": "reviewStateNew",
          "value": "REVIEW_STATE_NEW",
          "doc": "Google is reviewing the icon or display name.",
          "versioning": {}
        },
        "approved": {
          "name": "approved",
          "value": "APPROVED",
          "doc": "The icon or display name is approved and ready for public display.",
          "versioning": {}
        },
        "rejected": {
          "name": "rejected",
          "value": "REJECTED",
          "doc": "The icon or display name is rejected. Google won't display it.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.BrandIconDisapprovalReasons": {
      "name": "BrandIconDisapprovalReasons",
      "namespace": "Googlehotels",
      "doc": "Values Brand.iconDisapprovalReasons accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "imageDisapprovalReasonUnspecified": {
          "name": "imageDisapprovalReasonUnspecified",
          "value": "IMAGE_DISAPPROVAL_REASON_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "notLikeSite": {
          "name": "notLikeSite",
          "value": "NOT_LIKE_SITE",
          "doc": "Icon image does not match the favicon or artwork on the advertiser’s final URL.",
          "versioning": {}
        },
        "offensive": {
          "name": "offensive",
          "value": "OFFENSIVE",
          "doc": "Icon image contains offensive content.",
          "versioning": {}
        },
        "lowQuality": {
          "name": "lowQuality",
          "value": "LOW_QUALITY",
          "doc": "Icon image is low quality.",
          "versioning": {}
        },
        "animated": {
          "name": "animated",
          "value": "ANIMATED",
          "doc": "Icon image is animated.",
          "versioning": {}
        },
        "badBackground": {
          "name": "badBackground",
          "value": "BAD_BACKGROUND",
          "doc": "Icon image does not have a transparent or non-white background.",
          "versioning": {}
        },
        "textTooSmall": {
          "name": "textTooSmall",
          "value": "TEXT_TOO_SMALL",
          "doc": "Icon image contains text that is too small.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.DisplayNameDisapprovalReasonDisapprovalReason": {
      "name": "DisplayNameDisapprovalReasonDisapprovalReason",
      "namespace": "Googlehotels",
      "doc": "Values DisplayNameDisapprovalReason.disapprovalReason accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "disapprovalReasonUnspecified": {
          "name": "disapprovalReasonUnspecified",
          "value": "DISAPPROVAL_REASON_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "punctuation": {
          "name": "punctuation",
          "value": "PUNCTUATION",
          "doc": "The display name has bad formatting and/or contains punctuation.",
          "versioning": {}
        },
        "marketingLanguage": {
          "name": "marketingLanguage",
          "value": "MARKETING_LANGUAGE",
          "doc": "The display name contains marketing language.",
          "versioning": {}
        },
        "landingPageNotMatched": {
          "name": "landingPageNotMatched",
          "value": "LANDING_PAGE_NOT_MATCHED",
          "doc": "The display name does not match the landing page.",
          "versioning": {}
        },
        "notBrandName": {
          "name": "notBrandName",
          "value": "NOT_BRAND_NAME",
          "doc": "The display name does not appear to be a brand.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.BrandDisplayNameState": {
      "name": "BrandDisplayNameState",
      "namespace": "Googlehotels",
      "doc": "Values Brand.displayNameState accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "reviewStateUnspecified": {
          "name": "reviewStateUnspecified",
          "value": "REVIEW_STATE_UNSPECIFIED",
          "doc": "Default value.",
          "versioning": {}
        },
        "reviewStateNew": {
          "name": "reviewStateNew",
          "value": "REVIEW_STATE_NEW",
          "doc": "Google is reviewing the icon or display name.",
          "versioning": {}
        },
        "approved": {
          "name": "approved",
          "value": "APPROVED",
          "doc": "The icon or display name is approved and ready for public display.",
          "versioning": {}
        },
        "rejected": {
          "name": "rejected",
          "value": "REJECTED",
          "doc": "The icon or display name is rejected. Google won't display it.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.DataIssueDetailDataIssueSeverity": {
      "name": "DataIssueDetailDataIssueSeverity",
      "namespace": "Googlehotels",
      "doc": "Values DataIssueDetail.dataIssueSeverity accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "dataIssueSeverityUnspecified": {
          "name": "dataIssueSeverityUnspecified",
          "value": "DATA_ISSUE_SEVERITY_UNSPECIFIED",
          "doc": "The severity of the issue is unknown.",
          "versioning": {}
        },
        "error": {
          "name": "error",
          "value": "ERROR",
          "doc": "The data issue will make the listing ineligible for serving.",
          "versioning": {}
        },
        "warning": {
          "name": "warning",
          "value": "WARNING",
          "doc": "The listing will still be eligible for serving, but the data issue may have an adverse effect on the content shown.",
          "versioning": {}
        },
        "info": {
          "name": "info",
          "value": "INFO",
          "doc": "The data issue is for informational purposes.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.DataIssueDetailDataIssueType": {
      "name": "DataIssueDetailDataIssueType",
      "namespace": "Googlehotels",
      "doc": "Values DataIssueDetail.dataIssueType accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "feedDataIssueUnspecified": {
          "name": "feedDataIssueUnspecified",
          "value": "FEED_DATA_ISSUE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "feedDataIssueUnknown": {
          "name": "feedDataIssueUnknown",
          "value": "FEED_DATA_ISSUE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "noDataIssue": {
          "name": "noDataIssue",
          "value": "NO_DATA_ISSUE",
          "doc": "No data issues found.",
          "versioning": {}
        },
        "duplicateAddress": {
          "name": "duplicateAddress",
          "value": "DUPLICATE_ADDRESS",
          "doc": "The address is the same as another property in the Hotel List Feed.",
          "versioning": {}
        },
        "missingPhysicalStreetAddress": {
          "name": "missingPhysicalStreetAddress",
          "value": "MISSING_PHYSICAL_STREET_ADDRESS",
          "doc": "The provided address appears to contain a postal box instead of a physical street address.",
          "versioning": {}
        },
        "missingStreetName": {
          "name": "missingStreetName",
          "value": "MISSING_STREET_NAME",
          "doc": "The address does not appear to contain a street name.",
          "versioning": {}
        },
        "missingStreetNumber": {
          "name": "missingStreetNumber",
          "value": "MISSING_STREET_NUMBER",
          "doc": "The address does not appear to contain a street number.",
          "versioning": {}
        },
        "missingAddress": {
          "name": "missingAddress",
          "value": "MISSING_ADDRESS",
          "doc": "The address does not appear to contain a street number, street name, or supported country code.",
          "versioning": {}
        },
        "missingCountry": {
          "name": "missingCountry",
          "value": "MISSING_COUNTRY",
          "doc": "An invalid but recognized country code was provided.",
          "versioning": {}
        },
        "invalidPostalCode": {
          "name": "invalidPostalCode",
          "value": "INVALID_POSTAL_CODE",
          "doc": "The address contains an invalid postal code.",
          "versioning": {}
        },
        "invalidPostalCodeSuffix": {
          "name": "invalidPostalCodeSuffix",
          "value": "INVALID_POSTAL_CODE_SUFFIX",
          "doc": "The address contains an invalid postal code suffix.",
          "versioning": {}
        },
        "unexpectedPostalCodeSuffix": {
          "name": "unexpectedPostalCodeSuffix",
          "value": "UNEXPECTED_POSTAL_CODE_SUFFIX",
          "doc": "The address contains a postal code suffix when unsupported by the country's postal code system.",
          "versioning": {}
        },
        "unexpectedPostalCode": {
          "name": "unexpectedPostalCode",
          "value": "UNEXPECTED_POSTAL_CODE",
          "doc": "The address contains a postal code when unsupported by the country's postal code system.",
          "versioning": {}
        },
        "invalidAmenities": {
          "name": "invalidAmenities",
          "value": "INVALID_AMENITIES",
          "doc": "The name and value at 'listing.content.attributes.attr' is either unsupported or has an invalid value.",
          "versioning": {}
        },
        "invalidEmailAddress": {
          "name": "invalidEmailAddress",
          "value": "INVALID_EMAIL_ADDRESS",
          "doc": "The email at 'listing.content.attributes.attr[name='email']' is not a valid email address.",
          "versioning": {}
        },
        "duplicateLatlong": {
          "name": "duplicateLatlong",
          "value": "DUPLICATE_LATLONG",
          "doc": "The latitude/longitude pair is the same as another property in the Hotel List Feed.",
          "versioning": {}
        },
        "latlongInconsistentWithAddress": {
          "name": "latlongInconsistentWithAddress",
          "value": "LATLONG_INCONSISTENT_WITH_ADDRESS",
          "doc": "The latitude/longitude pair provided for the address is more than 500 meters away from the Google latitude/longitude generated from the address.",
          "versioning": {}
        },
        "missingLatlong": {
          "name": "missingLatlong",
          "value": "MISSING_LATLONG",
          "doc": "A valid pair of latitude/longitude fields is missing and Google latitude/longitude generation is disabled.",
          "versioning": {}
        },
        "couldNotGeocode": {
          "name": "couldNotGeocode",
          "value": "COULD_NOT_GEOCODE",
          "doc": "A valid pair of latitude/longitude fields is missing and Google could not generate them from the address.",
          "versioning": {}
        },
        "missingHotelName": {
          "name": "missingHotelName",
          "value": "MISSING_HOTEL_NAME",
          "doc": "No hotel name is provided.",
          "versioning": {}
        },
        "hotelNameEmpty": {
          "name": "hotelNameEmpty",
          "value": "HOTEL_NAME_EMPTY",
          "doc": "An empty or whitespace only name is provided, but no valid name.",
          "versioning": {}
        },
        "invalidHotelName": {
          "name": "invalidHotelName",
          "value": "INVALID_HOTEL_NAME",
          "doc": "An invalid name is provided, but no valid name.",
          "versioning": {}
        },
        "hotelNameTooLong": {
          "name": "hotelNameTooLong",
          "value": "HOTEL_NAME_TOO_LONG",
          "doc": "The hotel name exceeds 200 characters.",
          "versioning": {}
        },
        "parseErrorInXml": {
          "name": "parseErrorInXml",
          "value": "PARSE_ERROR_IN_XML",
          "doc": "Google encountered an error while importing your Hotel List Feed.",
          "versioning": {}
        },
        "unexpectedAttributeInXml": {
          "name": "unexpectedAttributeInXml",
          "value": "UNEXPECTED_ATTRIBUTE_IN_XML",
          "doc": "Google encountered an unknown error while importing your Hotel List Feed.",
          "versioning": {}
        },
        "duplicatePhoneNumber": {
          "name": "duplicatePhoneNumber",
          "value": "DUPLICATE_PHONE_NUMBER",
          "doc": "The phone number you provided for this property is the same as the phone number for another property. More than one listing in the Hotel List Feed cannot have the same phone number.",
          "versioning": {}
        },
        "missingPhoneNumber": {
          "name": "missingPhoneNumber",
          "value": "MISSING_PHONE_NUMBER",
          "doc": "No valid phone number for this property found.",
          "versioning": {}
        },
        "missingVoicePhoneNumber": {
          "name": "missingVoicePhoneNumber",
          "value": "MISSING_VOICE_PHONE_NUMBER",
          "doc": "Only invalid or fax phone numbers found.",
          "versioning": {}
        },
        "invalidPhoneNumberFormat": {
          "name": "invalidPhoneNumberFormat",
          "value": "INVALID_PHONE_NUMBER_FORMAT",
          "doc": "The phone number format is not valid.",
          "versioning": {}
        },
        "invalidPhoneNumber": {
          "name": "invalidPhoneNumber",
          "value": "INVALID_PHONE_NUMBER",
          "doc": "The phone number is not valid.",
          "versioning": {}
        },
        "invalidPhoneNumberCountryCode": {
          "name": "invalidPhoneNumberCountryCode",
          "value": "INVALID_PHONE_NUMBER_COUNTRY_CODE",
          "doc": "The country code of the phone number is not valid.",
          "versioning": {}
        },
        "phoneNumberTooLong": {
          "name": "phoneNumberTooLong",
          "value": "PHONE_NUMBER_TOO_LONG",
          "doc": "The phone number contains too many digits.",
          "versioning": {}
        },
        "phoneNumberTooShort": {
          "name": "phoneNumberTooShort",
          "value": "PHONE_NUMBER_TOO_SHORT",
          "doc": "The phone number contains has too few digits.",
          "versioning": {}
        },
        "invalidWebsiteUrl": {
          "name": "invalidWebsiteUrl",
          "value": "INVALID_WEBSITE_URL",
          "doc": "The specified `content.attributes.attr[name='website']` element is not a valid URL.",
          "versioning": {}
        },
        "adwordsAttributeTooLong": {
          "name": "adwordsAttributeTooLong",
          "value": "ADWORDS_ATTRIBUTE_TOO_LONG",
          "doc": "The category or `content.attributes.client_attr[name='hotel_brand']` element exceeds 70 Unicode characters, and/or `content.attributes.client_attr[name='custom_*']` exceeds 100 Unicode characters.",
          "versioning": {}
        },
        "flaggedDueToSuspiciousMetadata": {
          "name": "flaggedDueToSuspiciousMetadata",
          "value": "FLAGGED_DUE_TO_SUSPICIOUS_METADATA",
          "doc": "Contact your account manager for details.",
          "versioning": {}
        },
        "notEnoughImagesProvided": {
          "name": "notEnoughImagesProvided",
          "value": "NOT_ENOUGH_IMAGES_PROVIDED",
          "doc": "Vacation rental properties must have at least five feed images. Eight or more images are strongly recommended; having fewer than 8 may impact performance (such as impressions and clicks).",
          "versioning": {}
        },
        "imageProcessingInProgress": {
          "name": "imageProcessingInProgress",
          "value": "IMAGE_PROCESSING_IN_PROGRESS",
          "doc": "The images for this vacation rental property are still being processed.",
          "versioning": {}
        },
        "cannotFetchImages": {
          "name": "cannotFetchImages",
          "value": "CANNOT_FETCH_IMAGES",
          "doc": "The images for this property cannot be fetched. Please check that the image URLs are valid (e.g. do not give a 404 error) and that the domain hosting the image URLs does not block crawling of these images in its robots.txt file or X-Robots-Tag HTTP Header.",
          "versioning": {}
        },
        "incompatibleImageSizeOrLowQuality": {
          "name": "incompatibleImageSizeOrLowQuality",
          "value": "INCOMPATIBLE_IMAGE_SIZE_OR_LOW_QUALITY",
          "doc": "The images provided for this property do not meet Google's requirements due to dimensions, size, or automated quality signals. Please ensure that the images are less than 10 MB large, less than 4K pixels wide, and less than 4K pixels tall. Please check additional guidance outlined at the [Property listing image requirements](/hotels/vacation-rentals/dev-guide/onboarding#property_listing_image_requirements)",
          "versioning": {}
        },
        "missingLangInRawListing": {
          "name": "missingLangInRawListing",
          "value": "MISSING_LANG_IN_RAW_LISTING",
          "doc": "Deprecated Issue Vacation rental raw listing is missing a language field.",
          "versioning": {}
        },
        "isHotel": {
          "name": "isHotel",
          "value": "IS_HOTEL",
          "doc": "Vacation rental listing has been characterized as a hotel and not a vacation rental.",
          "versioning": {}
        },
        "missingReqAttr": {
          "name": "missingReqAttr",
          "value": "MISSING_REQ_ATTR",
          "doc": "Vacation rental listing is missing a required attribute.",
          "versioning": {}
        },
        "missingName": {
          "name": "missingName",
          "value": "MISSING_NAME",
          "doc": "Vacation rental listing is missing a name.",
          "versioning": {}
        },
        "missingLangInName": {
          "name": "missingLangInName",
          "value": "MISSING_LANG_IN_NAME",
          "doc": "Vacation rental listing name is missing a language field.",
          "versioning": {}
        },
        "vrNameTooLong": {
          "name": "vrNameTooLong",
          "value": "VR_NAME_TOO_LONG",
          "doc": "Vacation rental listing name is too long.",
          "versioning": {}
        },
        "nameAndDescriptionAbuseVerified": {
          "name": "nameAndDescriptionAbuseVerified",
          "value": "NAME_AND_DESCRIPTION_ABUSE_VERIFIED",
          "doc": "Vacation rental listing's name or description is verfied to contain content that violates Google's content policy.",
          "versioning": {}
        },
        "testProperty": {
          "name": "testProperty",
          "value": "TEST_PROPERTY",
          "doc": "Vacation rental listing is a test property.",
          "versioning": {}
        },
        "nonVrAccommodationTypeBasedOnListingName": {
          "name": "nonVrAccommodationTypeBasedOnListingName",
          "value": "NON_VR_ACCOMMODATION_TYPE_BASED_ON_LISTING_NAME",
          "doc": "Please use NON_VR_ACCOMMODATION_TYPE instead.",
          "versioning": {}
        },
        "nonVrAccommodationType": {
          "name": "nonVrAccommodationType",
          "value": "NON_VR_ACCOMMODATION_TYPE",
          "doc": "Listing that is sent as a vacation rental is suspected to be a non-vacation rental accommodation type, such as a hotel, hostel, etc.",
          "versioning": {}
        },
        "brandNameTooLong": {
          "name": "brandNameTooLong",
          "value": "BRAND_NAME_TOO_LONG",
          "doc": "Vacation rental listing brand name is too long.",
          "versioning": {}
        },
        "missingBrandName": {
          "name": "missingBrandName",
          "value": "MISSING_BRAND_NAME",
          "doc": "Google no longer requires brand names; this issue no longer occurs.",
          "versioning": {}
        },
        "reviewMissingVisitTimestamp": {
          "name": "reviewMissingVisitTimestamp",
          "value": "REVIEW_MISSING_VISIT_TIMESTAMP",
          "doc": "This listing has a review that is missing a visit timestamp and the timestamp is required in the listing's country. The review should include \"servicedate\" if using XML markup or \"contentReferenceTime\" if using schema.org.",
          "versioning": {}
        },
        "vrAddressMissing": {
          "name": "vrAddressMissing",
          "value": "VR_ADDRESS_MISSING",
          "doc": "An address should be added to this listing.",
          "versioning": {}
        },
        "vrAddressInvalid": {
          "name": "vrAddressInvalid",
          "value": "VR_ADDRESS_INVALID",
          "doc": "The provided address is invalid. Review address requirements on the [dev guide](/hotels/vacation-rentals/dev-guide/vr-attributes). Debugging suggestions: 1. Confirm the address does not contain redundant information such as the country in both addr1 and country_code. 2. Use Google Maps to confirm if the address is formatted correctly for its region. 3. Use a [plus code](https://plus.codes) if the address continues to be invalid.",
          "versioning": {}
        },
        "vrAddressIncomplete": {
          "name": "vrAddressIncomplete",
          "value": "VR_ADDRESS_INCOMPLETE",
          "doc": "Deprecated: Replaced with more specifc errors or VR_ADDRESS_INVALID. Google detected that the provided address for this listing is incomplete. For example, it may be missing a unit number.",
          "versioning": {}
        },
        "vrAddressIncompleteNoStreetName": {
          "name": "vrAddressIncompleteNoStreetName",
          "value": "VR_ADDRESS_INCOMPLETE_NO_STREET_NAME",
          "doc": "The provided address is missing a street name.",
          "versioning": {}
        },
        "vrAddressIncompleteNoStreetNumber": {
          "name": "vrAddressIncompleteNoStreetNumber",
          "value": "VR_ADDRESS_INCOMPLETE_NO_STREET_NUMBER",
          "doc": "The provided address is missing a street number.",
          "versioning": {}
        },
        "vrAddressIncompleteNoUnitNumber": {
          "name": "vrAddressIncompleteNoUnitNumber",
          "value": "VR_ADDRESS_INCOMPLETE_NO_UNIT_NUMBER",
          "doc": "The provided address is missing a unit number.",
          "versioning": {}
        },
        "vrAddressLatlongMismatch": {
          "name": "vrAddressLatlongMismatch",
          "value": "VR_ADDRESS_LATLONG_MISMATCH",
          "doc": "The provided address and lat/long data for this listing doesn't match.",
          "versioning": {}
        },
        "invalidReviewRating": {
          "name": "invalidReviewRating",
          "value": "INVALID_REVIEW_RATING",
          "doc": "Vacation rental listing has an invalid review rating.",
          "versioning": {}
        },
        "invalidCheckinFormat": {
          "name": "invalidCheckinFormat",
          "value": "INVALID_CHECKIN_FORMAT",
          "doc": "Vacation rental listing has an invalid check-in format.",
          "versioning": {}
        },
        "invalidCheckoutFormat": {
          "name": "invalidCheckoutFormat",
          "value": "INVALID_CHECKOUT_FORMAT",
          "doc": "Vacation rental listing has an invalid check-out format.",
          "versioning": {}
        },
        "internalBlocklist": {
          "name": "internalBlocklist",
          "value": "INTERNAL_BLOCKLIST",
          "doc": "This listing is in an internal blocklist. Contact your account manager for help.",
          "versioning": {}
        },
        "vrLiveOnGoogleInactiveError": {
          "name": "vrLiveOnGoogleInactiveError",
          "value": "VR_LIVE_ON_GOOGLE_INACTIVE_ERROR",
          "doc": "The \"Live on Google\" setting for this Vacation Rental is set to false. Note: once \"Live on Google\" is set to true, it will take a few days for this error to disappear.",
          "versioning": {}
        },
        "vrXmlFailedParsing": {
          "name": "vrXmlFailedParsing",
          "value": "VR_XML_FAILED_PARSING",
          "doc": "This listing's XML failed to parse. Please fix the XML associated with this listing.",
          "versioning": {}
        },
        "vrZipFileCorrupt": {
          "name": "vrZipFileCorrupt",
          "value": "VR_ZIP_FILE_CORRUPT",
          "doc": "A listing that indicates the that feed ZIP file is corrupt. Please ensure the ZIP file is valid.",
          "versioning": {}
        },
        "vrPendingInitialProcessing": {
          "name": "vrPendingInitialProcessing",
          "value": "VR_PENDING_INITIAL_PROCESSING",
          "doc": "Vacation rental listing is undergoing initial processing.",
          "versioning": {}
        },
        "vrWebsiteLinkRoboted": {
          "name": "vrWebsiteLinkRoboted",
          "value": "VR_WEBSITE_LINK_ROBOTED",
          "doc": "Vacation rental listing has a website link that is blocked by a robots.txt",
          "versioning": {}
        },
        "vrPendingWebsiteCrawling": {
          "name": "vrPendingWebsiteCrawling",
          "value": "VR_PENDING_WEBSITE_CRAWLING",
          "doc": "Vacation rental listing has a website link that is still undergoing crawling.",
          "versioning": {}
        },
        "vrWebsiteLinkWithCrawlingError": {
          "name": "vrWebsiteLinkWithCrawlingError",
          "value": "VR_WEBSITE_LINK_WITH_CRAWLING_ERROR",
          "doc": "Vacation rental listing has a website link with a crawling error.",
          "versioning": {}
        },
        "vrBrandMissingLandingPage": {
          "name": "vrBrandMissingLandingPage",
          "value": "VR_BRAND_MISSING_LANDING_PAGE",
          "doc": "The brand of this vacation rental property doesn't have a landing page. Contact your account manager for details.",
          "versioning": {}
        },
        "vrInvalidRoomType": {
          "name": "vrInvalidRoomType",
          "value": "VR_INVALID_ROOM_TYPE",
          "doc": "The room type is invalid. Private rooms and shared rooms are part of shared accommodations, which are not currently supported on the platform.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.FreeBookingLinksResultDeviceType": {
      "name": "FreeBookingLinksResultDeviceType",
      "namespace": "Googlehotels",
      "doc": "Values FreeBookingLinksResult.deviceType accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "deviceUnspecified": {
          "name": "deviceUnspecified",
          "value": "DEVICE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "deviceUnknown": {
          "name": "deviceUnknown",
          "value": "DEVICE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "desktop": {
          "name": "desktop",
          "value": "DESKTOP",
          "doc": "Computers.",
          "versioning": {}
        },
        "mobile": {
          "name": "mobile",
          "value": "MOBILE",
          "doc": "Mobile devices with full browsers.",
          "versioning": {}
        },
        "tablet": {
          "name": "tablet",
          "value": "TABLET",
          "doc": "Tablets with full browsers.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.HotelViewMatchStatus": {
      "name": "HotelViewMatchStatus",
      "namespace": "Googlehotels",
      "doc": "Values HotelView.matchStatus accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "matchStatusUnspecified": {
          "name": "matchStatusUnspecified",
          "value": "MATCH_STATUS_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "matchStatusUnknown": {
          "name": "matchStatusUnknown",
          "value": "MATCH_STATUS_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "notMatched": {
          "name": "notMatched",
          "value": "NOT_MATCHED",
          "doc": "This hotel does not correspond to a hotel on Google Maps.",
          "versioning": {}
        },
        "matched": {
          "name": "matched",
          "value": "MATCHED",
          "doc": "This hotel corresponds to a hotel on Google Maps.",
          "versioning": {}
        },
        "mapOverlap": {
          "name": "mapOverlap",
          "value": "MAP_OVERLAP",
          "doc": "More than one of your hotels match this hotel on Google Maps.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.HotelViewLiveOnGoogleStatus": {
      "name": "HotelViewLiveOnGoogleStatus",
      "namespace": "Googlehotels",
      "doc": "Values HotelView.liveOnGoogleStatus accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "liveOnGoogleStatusUnspecified": {
          "name": "liveOnGoogleStatusUnspecified",
          "value": "LIVE_ON_GOOGLE_STATUS_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "liveOnGoogleStatusActive": {
          "name": "liveOnGoogleStatusActive",
          "value": "LIVE_ON_GOOGLE_STATUS_ACTIVE",
          "doc": "The property will show on Google unconditionally.",
          "versioning": {}
        },
        "liveOnGoogleStatusInactive": {
          "name": "liveOnGoogleStatusInactive",
          "value": "LIVE_ON_GOOGLE_STATUS_INACTIVE",
          "doc": "The property will not show on Google.",
          "versioning": {}
        },
        "liveOnGoogleStatusActiveOutsideDsaRegion": {
          "name": "liveOnGoogleStatusActiveOutsideDsaRegion",
          "value": "LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION",
          "doc": "The property will show on Google for users outside of DSA regions. Current regions include: EU.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.HotelViewDataIssues": {
      "name": "HotelViewDataIssues",
      "namespace": "Googlehotels",
      "doc": "Values HotelView.dataIssues accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "feedDataIssueUnspecified": {
          "name": "feedDataIssueUnspecified",
          "value": "FEED_DATA_ISSUE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "feedDataIssueUnknown": {
          "name": "feedDataIssueUnknown",
          "value": "FEED_DATA_ISSUE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "noDataIssue": {
          "name": "noDataIssue",
          "value": "NO_DATA_ISSUE",
          "doc": "No data issues found.",
          "versioning": {}
        },
        "duplicateAddress": {
          "name": "duplicateAddress",
          "value": "DUPLICATE_ADDRESS",
          "doc": "The address is the same as another property in the Hotel List Feed.",
          "versioning": {}
        },
        "missingPhysicalStreetAddress": {
          "name": "missingPhysicalStreetAddress",
          "value": "MISSING_PHYSICAL_STREET_ADDRESS",
          "doc": "The provided address appears to contain a postal box instead of a physical street address.",
          "versioning": {}
        },
        "missingStreetName": {
          "name": "missingStreetName",
          "value": "MISSING_STREET_NAME",
          "doc": "The address does not appear to contain a street name.",
          "versioning": {}
        },
        "missingStreetNumber": {
          "name": "missingStreetNumber",
          "value": "MISSING_STREET_NUMBER",
          "doc": "The address does not appear to contain a street number.",
          "versioning": {}
        },
        "missingAddress": {
          "name": "missingAddress",
          "value": "MISSING_ADDRESS",
          "doc": "The address does not appear to contain a street number, street name, or supported country code.",
          "versioning": {}
        },
        "missingCountry": {
          "name": "missingCountry",
          "value": "MISSING_COUNTRY",
          "doc": "An invalid but recognized country code was provided.",
          "versioning": {}
        },
        "invalidPostalCode": {
          "name": "invalidPostalCode",
          "value": "INVALID_POSTAL_CODE",
          "doc": "The address contains an invalid postal code.",
          "versioning": {}
        },
        "invalidPostalCodeSuffix": {
          "name": "invalidPostalCodeSuffix",
          "value": "INVALID_POSTAL_CODE_SUFFIX",
          "doc": "The address contains an invalid postal code suffix.",
          "versioning": {}
        },
        "unexpectedPostalCodeSuffix": {
          "name": "unexpectedPostalCodeSuffix",
          "value": "UNEXPECTED_POSTAL_CODE_SUFFIX",
          "doc": "The address contains a postal code suffix when unsupported by the country's postal code system.",
          "versioning": {}
        },
        "unexpectedPostalCode": {
          "name": "unexpectedPostalCode",
          "value": "UNEXPECTED_POSTAL_CODE",
          "doc": "The address contains a postal code when unsupported by the country's postal code system.",
          "versioning": {}
        },
        "invalidAmenities": {
          "name": "invalidAmenities",
          "value": "INVALID_AMENITIES",
          "doc": "The name and value at 'listing.content.attributes.attr' is either unsupported or has an invalid value.",
          "versioning": {}
        },
        "invalidEmailAddress": {
          "name": "invalidEmailAddress",
          "value": "INVALID_EMAIL_ADDRESS",
          "doc": "The email at 'listing.content.attributes.attr[name='email']' is not a valid email address.",
          "versioning": {}
        },
        "duplicateLatlong": {
          "name": "duplicateLatlong",
          "value": "DUPLICATE_LATLONG",
          "doc": "The latitude/longitude pair is the same as another property in the Hotel List Feed.",
          "versioning": {}
        },
        "latlongInconsistentWithAddress": {
          "name": "latlongInconsistentWithAddress",
          "value": "LATLONG_INCONSISTENT_WITH_ADDRESS",
          "doc": "The latitude/longitude pair provided for the address is more than 500 meters away from the Google latitude/longitude generated from the address.",
          "versioning": {}
        },
        "missingLatlong": {
          "name": "missingLatlong",
          "value": "MISSING_LATLONG",
          "doc": "A valid pair of latitude/longitude fields is missing and Google latitude/longitude generation is disabled.",
          "versioning": {}
        },
        "couldNotGeocode": {
          "name": "couldNotGeocode",
          "value": "COULD_NOT_GEOCODE",
          "doc": "A valid pair of latitude/longitude fields is missing and Google could not generate them from the address.",
          "versioning": {}
        },
        "missingHotelName": {
          "name": "missingHotelName",
          "value": "MISSING_HOTEL_NAME",
          "doc": "No hotel name is provided.",
          "versioning": {}
        },
        "hotelNameEmpty": {
          "name": "hotelNameEmpty",
          "value": "HOTEL_NAME_EMPTY",
          "doc": "An empty or whitespace only name is provided, but no valid name.",
          "versioning": {}
        },
        "invalidHotelName": {
          "name": "invalidHotelName",
          "value": "INVALID_HOTEL_NAME",
          "doc": "An invalid name is provided, but no valid name.",
          "versioning": {}
        },
        "hotelNameTooLong": {
          "name": "hotelNameTooLong",
          "value": "HOTEL_NAME_TOO_LONG",
          "doc": "The hotel name exceeds 200 characters.",
          "versioning": {}
        },
        "parseErrorInXml": {
          "name": "parseErrorInXml",
          "value": "PARSE_ERROR_IN_XML",
          "doc": "Google encountered an error while importing your Hotel List Feed.",
          "versioning": {}
        },
        "unexpectedAttributeInXml": {
          "name": "unexpectedAttributeInXml",
          "value": "UNEXPECTED_ATTRIBUTE_IN_XML",
          "doc": "Google encountered an unknown error while importing your Hotel List Feed.",
          "versioning": {}
        },
        "duplicatePhoneNumber": {
          "name": "duplicatePhoneNumber",
          "value": "DUPLICATE_PHONE_NUMBER",
          "doc": "The phone number you provided for this property is the same as the phone number for another property. More than one listing in the Hotel List Feed cannot have the same phone number.",
          "versioning": {}
        },
        "missingPhoneNumber": {
          "name": "missingPhoneNumber",
          "value": "MISSING_PHONE_NUMBER",
          "doc": "No valid phone number for this property found.",
          "versioning": {}
        },
        "missingVoicePhoneNumber": {
          "name": "missingVoicePhoneNumber",
          "value": "MISSING_VOICE_PHONE_NUMBER",
          "doc": "Only invalid or fax phone numbers found.",
          "versioning": {}
        },
        "invalidPhoneNumberFormat": {
          "name": "invalidPhoneNumberFormat",
          "value": "INVALID_PHONE_NUMBER_FORMAT",
          "doc": "The phone number format is not valid.",
          "versioning": {}
        },
        "invalidPhoneNumber": {
          "name": "invalidPhoneNumber",
          "value": "INVALID_PHONE_NUMBER",
          "doc": "The phone number is not valid.",
          "versioning": {}
        },
        "invalidPhoneNumberCountryCode": {
          "name": "invalidPhoneNumberCountryCode",
          "value": "INVALID_PHONE_NUMBER_COUNTRY_CODE",
          "doc": "The country code of the phone number is not valid.",
          "versioning": {}
        },
        "phoneNumberTooLong": {
          "name": "phoneNumberTooLong",
          "value": "PHONE_NUMBER_TOO_LONG",
          "doc": "The phone number contains too many digits.",
          "versioning": {}
        },
        "phoneNumberTooShort": {
          "name": "phoneNumberTooShort",
          "value": "PHONE_NUMBER_TOO_SHORT",
          "doc": "The phone number contains has too few digits.",
          "versioning": {}
        },
        "invalidWebsiteUrl": {
          "name": "invalidWebsiteUrl",
          "value": "INVALID_WEBSITE_URL",
          "doc": "The specified `content.attributes.attr[name='website']` element is not a valid URL.",
          "versioning": {}
        },
        "adwordsAttributeTooLong": {
          "name": "adwordsAttributeTooLong",
          "value": "ADWORDS_ATTRIBUTE_TOO_LONG",
          "doc": "The category or `content.attributes.client_attr[name='hotel_brand']` element exceeds 70 Unicode characters, and/or `content.attributes.client_attr[name='custom_*']` exceeds 100 Unicode characters.",
          "versioning": {}
        },
        "flaggedDueToSuspiciousMetadata": {
          "name": "flaggedDueToSuspiciousMetadata",
          "value": "FLAGGED_DUE_TO_SUSPICIOUS_METADATA",
          "doc": "Contact your account manager for details.",
          "versioning": {}
        },
        "notEnoughImagesProvided": {
          "name": "notEnoughImagesProvided",
          "value": "NOT_ENOUGH_IMAGES_PROVIDED",
          "doc": "Vacation rental properties must have at least five feed images. Eight or more images are strongly recommended; having fewer than 8 may impact performance (such as impressions and clicks).",
          "versioning": {}
        },
        "imageProcessingInProgress": {
          "name": "imageProcessingInProgress",
          "value": "IMAGE_PROCESSING_IN_PROGRESS",
          "doc": "The images for this vacation rental property are still being processed.",
          "versioning": {}
        },
        "cannotFetchImages": {
          "name": "cannotFetchImages",
          "value": "CANNOT_FETCH_IMAGES",
          "doc": "The images for this property cannot be fetched. Please check that the image URLs are valid (e.g. do not give a 404 error) and that the domain hosting the image URLs does not block crawling of these images in its robots.txt file or X-Robots-Tag HTTP Header.",
          "versioning": {}
        },
        "incompatibleImageSizeOrLowQuality": {
          "name": "incompatibleImageSizeOrLowQuality",
          "value": "INCOMPATIBLE_IMAGE_SIZE_OR_LOW_QUALITY",
          "doc": "The images provided for this property do not meet Google's requirements due to dimensions, size, or automated quality signals. Please ensure that the images are less than 10 MB large, less than 4K pixels wide, and less than 4K pixels tall. Please check additional guidance outlined at the [Property listing image requirements](/hotels/vacation-rentals/dev-guide/onboarding#property_listing_image_requirements)",
          "versioning": {}
        },
        "missingLangInRawListing": {
          "name": "missingLangInRawListing",
          "value": "MISSING_LANG_IN_RAW_LISTING",
          "doc": "Deprecated Issue Vacation rental raw listing is missing a language field.",
          "versioning": {}
        },
        "isHotel": {
          "name": "isHotel",
          "value": "IS_HOTEL",
          "doc": "Vacation rental listing has been characterized as a hotel and not a vacation rental.",
          "versioning": {}
        },
        "missingReqAttr": {
          "name": "missingReqAttr",
          "value": "MISSING_REQ_ATTR",
          "doc": "Vacation rental listing is missing a required attribute.",
          "versioning": {}
        },
        "missingName": {
          "name": "missingName",
          "value": "MISSING_NAME",
          "doc": "Vacation rental listing is missing a name.",
          "versioning": {}
        },
        "missingLangInName": {
          "name": "missingLangInName",
          "value": "MISSING_LANG_IN_NAME",
          "doc": "Vacation rental listing name is missing a language field.",
          "versioning": {}
        },
        "vrNameTooLong": {
          "name": "vrNameTooLong",
          "value": "VR_NAME_TOO_LONG",
          "doc": "Vacation rental listing name is too long.",
          "versioning": {}
        },
        "nameAndDescriptionAbuseVerified": {
          "name": "nameAndDescriptionAbuseVerified",
          "value": "NAME_AND_DESCRIPTION_ABUSE_VERIFIED",
          "doc": "Vacation rental listing's name or description is verfied to contain content that violates Google's content policy.",
          "versioning": {}
        },
        "testProperty": {
          "name": "testProperty",
          "value": "TEST_PROPERTY",
          "doc": "Vacation rental listing is a test property.",
          "versioning": {}
        },
        "nonVrAccommodationTypeBasedOnListingName": {
          "name": "nonVrAccommodationTypeBasedOnListingName",
          "value": "NON_VR_ACCOMMODATION_TYPE_BASED_ON_LISTING_NAME",
          "doc": "Please use NON_VR_ACCOMMODATION_TYPE instead.",
          "versioning": {}
        },
        "nonVrAccommodationType": {
          "name": "nonVrAccommodationType",
          "value": "NON_VR_ACCOMMODATION_TYPE",
          "doc": "Listing that is sent as a vacation rental is suspected to be a non-vacation rental accommodation type, such as a hotel, hostel, etc.",
          "versioning": {}
        },
        "brandNameTooLong": {
          "name": "brandNameTooLong",
          "value": "BRAND_NAME_TOO_LONG",
          "doc": "Vacation rental listing brand name is too long.",
          "versioning": {}
        },
        "missingBrandName": {
          "name": "missingBrandName",
          "value": "MISSING_BRAND_NAME",
          "doc": "Google no longer requires brand names; this issue no longer occurs.",
          "versioning": {}
        },
        "reviewMissingVisitTimestamp": {
          "name": "reviewMissingVisitTimestamp",
          "value": "REVIEW_MISSING_VISIT_TIMESTAMP",
          "doc": "This listing has a review that is missing a visit timestamp and the timestamp is required in the listing's country. The review should include \"servicedate\" if using XML markup or \"contentReferenceTime\" if using schema.org.",
          "versioning": {}
        },
        "vrAddressMissing": {
          "name": "vrAddressMissing",
          "value": "VR_ADDRESS_MISSING",
          "doc": "An address should be added to this listing.",
          "versioning": {}
        },
        "vrAddressInvalid": {
          "name": "vrAddressInvalid",
          "value": "VR_ADDRESS_INVALID",
          "doc": "The provided address is invalid. Review address requirements on the [dev guide](/hotels/vacation-rentals/dev-guide/vr-attributes). Debugging suggestions: 1. Confirm the address does not contain redundant information such as the country in both addr1 and country_code. 2. Use Google Maps to confirm if the address is formatted correctly for its region. 3. Use a [plus code](https://plus.codes) if the address continues to be invalid.",
          "versioning": {}
        },
        "vrAddressIncomplete": {
          "name": "vrAddressIncomplete",
          "value": "VR_ADDRESS_INCOMPLETE",
          "doc": "Deprecated: Replaced with more specifc errors or VR_ADDRESS_INVALID. Google detected that the provided address for this listing is incomplete. For example, it may be missing a unit number.",
          "versioning": {}
        },
        "vrAddressIncompleteNoStreetName": {
          "name": "vrAddressIncompleteNoStreetName",
          "value": "VR_ADDRESS_INCOMPLETE_NO_STREET_NAME",
          "doc": "The provided address is missing a street name.",
          "versioning": {}
        },
        "vrAddressIncompleteNoStreetNumber": {
          "name": "vrAddressIncompleteNoStreetNumber",
          "value": "VR_ADDRESS_INCOMPLETE_NO_STREET_NUMBER",
          "doc": "The provided address is missing a street number.",
          "versioning": {}
        },
        "vrAddressIncompleteNoUnitNumber": {
          "name": "vrAddressIncompleteNoUnitNumber",
          "value": "VR_ADDRESS_INCOMPLETE_NO_UNIT_NUMBER",
          "doc": "The provided address is missing a unit number.",
          "versioning": {}
        },
        "vrAddressLatlongMismatch": {
          "name": "vrAddressLatlongMismatch",
          "value": "VR_ADDRESS_LATLONG_MISMATCH",
          "doc": "The provided address and lat/long data for this listing doesn't match.",
          "versioning": {}
        },
        "invalidReviewRating": {
          "name": "invalidReviewRating",
          "value": "INVALID_REVIEW_RATING",
          "doc": "Vacation rental listing has an invalid review rating.",
          "versioning": {}
        },
        "invalidCheckinFormat": {
          "name": "invalidCheckinFormat",
          "value": "INVALID_CHECKIN_FORMAT",
          "doc": "Vacation rental listing has an invalid check-in format.",
          "versioning": {}
        },
        "invalidCheckoutFormat": {
          "name": "invalidCheckoutFormat",
          "value": "INVALID_CHECKOUT_FORMAT",
          "doc": "Vacation rental listing has an invalid check-out format.",
          "versioning": {}
        },
        "internalBlocklist": {
          "name": "internalBlocklist",
          "value": "INTERNAL_BLOCKLIST",
          "doc": "This listing is in an internal blocklist. Contact your account manager for help.",
          "versioning": {}
        },
        "vrLiveOnGoogleInactiveError": {
          "name": "vrLiveOnGoogleInactiveError",
          "value": "VR_LIVE_ON_GOOGLE_INACTIVE_ERROR",
          "doc": "The \"Live on Google\" setting for this Vacation Rental is set to false. Note: once \"Live on Google\" is set to true, it will take a few days for this error to disappear.",
          "versioning": {}
        },
        "vrXmlFailedParsing": {
          "name": "vrXmlFailedParsing",
          "value": "VR_XML_FAILED_PARSING",
          "doc": "This listing's XML failed to parse. Please fix the XML associated with this listing.",
          "versioning": {}
        },
        "vrZipFileCorrupt": {
          "name": "vrZipFileCorrupt",
          "value": "VR_ZIP_FILE_CORRUPT",
          "doc": "A listing that indicates the that feed ZIP file is corrupt. Please ensure the ZIP file is valid.",
          "versioning": {}
        },
        "vrPendingInitialProcessing": {
          "name": "vrPendingInitialProcessing",
          "value": "VR_PENDING_INITIAL_PROCESSING",
          "doc": "Vacation rental listing is undergoing initial processing.",
          "versioning": {}
        },
        "vrWebsiteLinkRoboted": {
          "name": "vrWebsiteLinkRoboted",
          "value": "VR_WEBSITE_LINK_ROBOTED",
          "doc": "Vacation rental listing has a website link that is blocked by a robots.txt",
          "versioning": {}
        },
        "vrPendingWebsiteCrawling": {
          "name": "vrPendingWebsiteCrawling",
          "value": "VR_PENDING_WEBSITE_CRAWLING",
          "doc": "Vacation rental listing has a website link that is still undergoing crawling.",
          "versioning": {}
        },
        "vrWebsiteLinkWithCrawlingError": {
          "name": "vrWebsiteLinkWithCrawlingError",
          "value": "VR_WEBSITE_LINK_WITH_CRAWLING_ERROR",
          "doc": "Vacation rental listing has a website link with a crawling error.",
          "versioning": {}
        },
        "vrBrandMissingLandingPage": {
          "name": "vrBrandMissingLandingPage",
          "value": "VR_BRAND_MISSING_LANDING_PAGE",
          "doc": "The brand of this vacation rental property doesn't have a landing page. Contact your account manager for details.",
          "versioning": {}
        },
        "vrInvalidRoomType": {
          "name": "vrInvalidRoomType",
          "value": "VR_INVALID_ROOM_TYPE",
          "doc": "The room type is invalid. Private rooms and shared rooms are part of shared accommodations, which are not currently supported on the platform.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.IconDisapprovalReasons": {
      "name": "IconDisapprovalReasons",
      "namespace": "Googlehotels",
      "doc": "Values Icon.disapprovalReasons accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "imageDisapprovalReasonUnspecified": {
          "name": "imageDisapprovalReasonUnspecified",
          "value": "IMAGE_DISAPPROVAL_REASON_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "notLikeSite": {
          "name": "notLikeSite",
          "value": "NOT_LIKE_SITE",
          "doc": "Icon image does not match the favicon or artwork on the advertiser’s final URL.",
          "versioning": {}
        },
        "offensive": {
          "name": "offensive",
          "value": "OFFENSIVE",
          "doc": "Icon image contains offensive content.",
          "versioning": {}
        },
        "lowQuality": {
          "name": "lowQuality",
          "value": "LOW_QUALITY",
          "doc": "Icon image is low quality.",
          "versioning": {}
        },
        "animated": {
          "name": "animated",
          "value": "ANIMATED",
          "doc": "Icon image is animated.",
          "versioning": {}
        },
        "badBackground": {
          "name": "badBackground",
          "value": "BAD_BACKGROUND",
          "doc": "Icon image does not have a transparent or non-white background.",
          "versioning": {}
        },
        "textTooSmall": {
          "name": "textTooSmall",
          "value": "TEXT_TOO_SMALL",
          "doc": "Icon image contains text that is too small.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.IconState": {
      "name": "IconState",
      "namespace": "Googlehotels",
      "doc": "Values Icon.state accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "stateUnspecified": {
          "name": "stateUnspecified",
          "value": "STATE_UNSPECIFIED",
          "doc": "Default value.",
          "versioning": {}
        },
        "new": {
          "name": "new",
          "value": "NEW",
          "doc": "Google has received the icon and is reviewing its contents.",
          "versioning": {}
        },
        "approved": {
          "name": "approved",
          "value": "APPROVED",
          "doc": "The icon is approved and is ready for public display. You can link APPROVED icons to brands.",
          "versioning": {}
        },
        "rejected": {
          "name": "rejected",
          "value": "REJECTED",
          "doc": "The icon is rejected. Google won't display this icon.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.KeyDeviceType": {
      "name": "KeyDeviceType",
      "namespace": "Googlehotels",
      "doc": "Values Key.deviceType accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "deviceUnspecified": {
          "name": "deviceUnspecified",
          "value": "DEVICE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "deviceUnknown": {
          "name": "deviceUnknown",
          "value": "DEVICE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "desktop": {
          "name": "desktop",
          "value": "DESKTOP",
          "doc": "Computers.",
          "versioning": {}
        },
        "mobile": {
          "name": "mobile",
          "value": "MOBILE",
          "doc": "Mobile devices with full browsers.",
          "versioning": {}
        },
        "tablet": {
          "name": "tablet",
          "value": "TABLET",
          "doc": "Tablets with full browsers.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PriceAccuracyRowMismatchReason": {
      "name": "PriceAccuracyRowMismatchReason",
      "namespace": "Googlehotels",
      "doc": "Values PriceAccuracyRow.mismatchReason accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "mismatchReasonUnspecified": {
          "name": "mismatchReasonUnspecified",
          "value": "MISMATCH_REASON_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "mismatchReasonUnknown": {
          "name": "mismatchReasonUnknown",
          "value": "MISMATCH_REASON_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "taxMismatch": {
          "name": "taxMismatch",
          "value": "TAX_MISMATCH",
          "doc": "Tax mismatch.",
          "versioning": {}
        },
        "roomUnavailable": {
          "name": "roomUnavailable",
          "value": "ROOM_UNAVAILABLE",
          "doc": "Room unavailable.",
          "versioning": {}
        },
        "siteError": {
          "name": "siteError",
          "value": "SITE_ERROR",
          "doc": "Site error.",
          "versioning": {}
        },
        "priceFeedDelayed": {
          "name": "priceFeedDelayed",
          "value": "PRICE_FEED_DELAYED",
          "doc": "Price feed delayed.",
          "versioning": {}
        },
        "discountMissing": {
          "name": "discountMissing",
          "value": "DISCOUNT_MISSING",
          "doc": "Discount missing.",
          "versioning": {}
        },
        "incorrectDiscountValue": {
          "name": "incorrectDiscountValue",
          "value": "INCORRECT_DISCOUNT_VALUE",
          "doc": "Incorrect discount value.",
          "versioning": {}
        },
        "wrongItinerary": {
          "name": "wrongItinerary",
          "value": "WRONG_ITINERARY",
          "doc": "Wrong itinerary.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PriceAccuracyRowDeviceType": {
      "name": "PriceAccuracyRowDeviceType",
      "namespace": "Googlehotels",
      "doc": "Values PriceAccuracyRow.deviceType accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "deviceUnspecified": {
          "name": "deviceUnspecified",
          "value": "DEVICE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "deviceUnknown": {
          "name": "deviceUnknown",
          "value": "DEVICE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "desktop": {
          "name": "desktop",
          "value": "DESKTOP",
          "doc": "Computers.",
          "versioning": {}
        },
        "mobile": {
          "name": "mobile",
          "value": "MOBILE",
          "doc": "Mobile devices with full browsers.",
          "versioning": {}
        },
        "tablet": {
          "name": "tablet",
          "value": "TABLET",
          "doc": "Tablets with full browsers.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PriceAccuracyRowSignalSource": {
      "name": "PriceAccuracyRowSignalSource",
      "namespace": "Googlehotels",
      "doc": "Values PriceAccuracyRow.signalSource accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "signalSourceUnspecified": {
          "name": "signalSourceUnspecified",
          "value": "SIGNAL_SOURCE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "signalSourceUnknown": {
          "name": "signalSourceUnknown",
          "value": "SIGNAL_SOURCE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "fetched": {
          "name": "fetched",
          "value": "FETCHED",
          "doc": "The price is read directly from the partner's website.",
          "versioning": {}
        },
        "pixel": {
          "name": "pixel",
          "value": "PIXEL",
          "doc": "The price is provided by the partner via a price accuracy pixel.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PriceCoverageBucketAdvanceBookingWindowRange": {
      "name": "PriceCoverageBucketAdvanceBookingWindowRange",
      "namespace": "Googlehotels",
      "doc": "Values PriceCoverageBucket.advanceBookingWindowRange accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "advanceBookingWindowRangeUnspecified": {
          "name": "advanceBookingWindowRangeUnspecified",
          "value": "ADVANCE_BOOKING_WINDOW_RANGE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "advanceBookingWindowRangeUnknown": {
          "name": "advanceBookingWindowRangeUnknown",
          "value": "ADVANCE_BOOKING_WINDOW_RANGE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "days0To30": {
          "name": "days0To30",
          "value": "DAYS_0_TO_30",
          "doc": "Represents advance booking window between 0 and 30 days.",
          "versioning": {}
        },
        "days31To60": {
          "name": "days31To60",
          "value": "DAYS_31_TO_60",
          "doc": "Represents advance booking window between 31 and 60 days.",
          "versioning": {}
        },
        "days61To90": {
          "name": "days61To90",
          "value": "DAYS_61_TO_90",
          "doc": "Represents advance booking window between 61 and 90 days.",
          "versioning": {}
        },
        "days91To120": {
          "name": "days91To120",
          "value": "DAYS_91_TO_120",
          "doc": "Represents advance booking window between 91 and 120 days.",
          "versioning": {}
        },
        "days121To150": {
          "name": "days121To150",
          "value": "DAYS_121_TO_150",
          "doc": "Represents advance booking window between 121 and 150 days.",
          "versioning": {}
        },
        "days151To180": {
          "name": "days151To180",
          "value": "DAYS_151_TO_180",
          "doc": "Represents advance booking window between 151 and 180 days.",
          "versioning": {}
        },
        "days181To210": {
          "name": "days181To210",
          "value": "DAYS_181_TO_210",
          "doc": "Represents advance booking window between 181 and 210 days.",
          "versioning": {}
        },
        "days211To240": {
          "name": "days211To240",
          "value": "DAYS_211_TO_240",
          "doc": "Represents advance booking window between 211 and 240 days.",
          "versioning": {}
        },
        "days241To270": {
          "name": "days241To270",
          "value": "DAYS_241_TO_270",
          "doc": "Represents advance booking window between 241 and 270 days.",
          "versioning": {}
        },
        "days271To300": {
          "name": "days271To300",
          "value": "DAYS_271_TO_300",
          "doc": "Represents advance booking window between 271 and 300 days.",
          "versioning": {}
        },
        "days301To330": {
          "name": "days301To330",
          "value": "DAYS_301_TO_330",
          "doc": "Represents advance booking window between 301 and 330 days.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PriceCoverageBucketLengthOfStayRange": {
      "name": "PriceCoverageBucketLengthOfStayRange",
      "namespace": "Googlehotels",
      "doc": "Values PriceCoverageBucket.lengthOfStayRange accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "lengthOfStayRangeUnspecified": {
          "name": "lengthOfStayRangeUnspecified",
          "value": "LENGTH_OF_STAY_RANGE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "lengthOfStayRangeUnknown": {
          "name": "lengthOfStayRangeUnknown",
          "value": "LENGTH_OF_STAY_RANGE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "lengthOfStay1To7": {
          "name": "lengthOfStay1To7",
          "value": "LENGTH_OF_STAY_1_TO_7",
          "doc": "Represents length of stay from 1 to 7 nights.",
          "versioning": {}
        },
        "lengthOfStay8To14": {
          "name": "lengthOfStay8To14",
          "value": "LENGTH_OF_STAY_8_TO_14",
          "doc": "Represents length of stay from 8 to 14 nights.",
          "versioning": {}
        },
        "lengthOfStay15To30": {
          "name": "lengthOfStay15To30",
          "value": "LENGTH_OF_STAY_15_TO_30",
          "doc": "Represents length of stay from 15 to 30 nights.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.RatingType": {
      "name": "RatingType",
      "namespace": "Googlehotels",
      "doc": "Values Rating.type accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "typeUnspecified": {
          "name": "typeUnspecified",
          "value": "TYPE_UNSPECIFIED",
          "doc": "Rating type is unspecified.",
          "versioning": {}
        },
        "overall": {
          "name": "overall",
          "value": "OVERALL",
          "doc": "Rating is of overall type.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.ReviewType": {
      "name": "ReviewType",
      "namespace": "Googlehotels",
      "doc": "Values Review.type accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "unknown": {
          "name": "unknown",
          "value": "UNKNOWN",
          "doc": "Review type is unknown.",
          "versioning": {}
        },
        "editorial": {
          "name": "editorial",
          "value": "EDITORIAL",
          "doc": "Review is of editorial type.",
          "versioning": {}
        },
        "user": {
          "name": "user",
          "value": "USER",
          "doc": "Review is of user type.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PropertyPerformanceResultDeviceType": {
      "name": "PropertyPerformanceResultDeviceType",
      "namespace": "Googlehotels",
      "doc": "Values PropertyPerformanceResult.deviceType accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "deviceUnspecified": {
          "name": "deviceUnspecified",
          "value": "DEVICE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "deviceUnknown": {
          "name": "deviceUnknown",
          "value": "DEVICE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "desktop": {
          "name": "desktop",
          "value": "DESKTOP",
          "doc": "Computers.",
          "versioning": {}
        },
        "mobile": {
          "name": "mobile",
          "value": "MOBILE",
          "doc": "Mobile devices with full browsers.",
          "versioning": {}
        },
        "tablet": {
          "name": "tablet",
          "value": "TABLET",
          "doc": "Tablets with full browsers.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PropertyPerformanceResultOccupancy": {
      "name": "PropertyPerformanceResultOccupancy",
      "namespace": "Googlehotels",
      "doc": "Values PropertyPerformanceResult.occupancy accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "occupancyUnspecified": {
          "name": "occupancyUnspecified",
          "value": "OCCUPANCY_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "occupancy1": {
          "name": "occupancy1",
          "value": "OCCUPANCY_1",
          "doc": "Single person.",
          "versioning": {}
        },
        "occupancy2": {
          "name": "occupancy2",
          "value": "OCCUPANCY_2",
          "doc": "Two people.",
          "versioning": {}
        },
        "occupancy3": {
          "name": "occupancy3",
          "value": "OCCUPANCY_3",
          "doc": "Three people.",
          "versioning": {}
        },
        "occupancy4": {
          "name": "occupancy4",
          "value": "OCCUPANCY_4",
          "doc": "Four people.",
          "versioning": {}
        },
        "occupancyOver4": {
          "name": "occupancyOver4",
          "value": "OCCUPANCY_OVER_4",
          "doc": "Over 4 people.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PropertyPerformanceResultAdvanceBookingWindow": {
      "name": "PropertyPerformanceResultAdvanceBookingWindow",
      "namespace": "Googlehotels",
      "doc": "Values PropertyPerformanceResult.advanceBookingWindow accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "advanceBookingWindowUnspecified": {
          "name": "advanceBookingWindowUnspecified",
          "value": "ADVANCE_BOOKING_WINDOW_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "advanceBookingWindowSameDay": {
          "name": "advanceBookingWindowSameDay",
          "value": "ADVANCE_BOOKING_WINDOW_SAME_DAY",
          "doc": "Check-in date was same as query date.",
          "versioning": {}
        },
        "advanceBookingWindowNextDay": {
          "name": "advanceBookingWindowNextDay",
          "value": "ADVANCE_BOOKING_WINDOW_NEXT_DAY",
          "doc": "Check-in date was next day after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays2To7": {
          "name": "advanceBookingWindowDays2To7",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_2_TO_7",
          "doc": "Check-in date was 2-7 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays8To14": {
          "name": "advanceBookingWindowDays8To14",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_8_TO_14",
          "doc": "Check-in date was 8-14 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays15To30": {
          "name": "advanceBookingWindowDays15To30",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_15_TO_30",
          "doc": "Check-in date was 15-30 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays31To60": {
          "name": "advanceBookingWindowDays31To60",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_31_TO_60",
          "doc": "Check-in date was 31-60 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays61To90": {
          "name": "advanceBookingWindowDays61To90",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_61_TO_90",
          "doc": "Check-in date was 61-90 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays91To120": {
          "name": "advanceBookingWindowDays91To120",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_91_TO_120",
          "doc": "Check-in date was 91-120 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays121To150": {
          "name": "advanceBookingWindowDays121To150",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_121_TO_150",
          "doc": "Check-in date was 121-150 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDays151To180": {
          "name": "advanceBookingWindowDays151To180",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_151_TO_180",
          "doc": "Check-in date was 151-180 days after query date.",
          "versioning": {}
        },
        "advanceBookingWindowDaysOver180": {
          "name": "advanceBookingWindowDaysOver180",
          "value": "ADVANCE_BOOKING_WINDOW_DAYS_OVER_180",
          "doc": "Check-in date was over 180 days after query date.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.PropertyPerformanceResultLengthOfStay": {
      "name": "PropertyPerformanceResultLengthOfStay",
      "namespace": "Googlehotels",
      "doc": "Values PropertyPerformanceResult.lengthOfStay accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "lengthOfStayUnspecified": {
          "name": "lengthOfStayUnspecified",
          "value": "LENGTH_OF_STAY_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "lengthOfStayNights1": {
          "name": "lengthOfStayNights1",
          "value": "LENGTH_OF_STAY_NIGHTS_1",
          "doc": "Single night stay.",
          "versioning": {}
        },
        "lengthOfStayNights2": {
          "name": "lengthOfStayNights2",
          "value": "LENGTH_OF_STAY_NIGHTS_2",
          "doc": "Stay of 2 nights.",
          "versioning": {}
        },
        "lengthOfStayNights3": {
          "name": "lengthOfStayNights3",
          "value": "LENGTH_OF_STAY_NIGHTS_3",
          "doc": "Stay of 3 nights.",
          "versioning": {}
        },
        "lengthOfStayNights4To7": {
          "name": "lengthOfStayNights4To7",
          "value": "LENGTH_OF_STAY_NIGHTS_4_TO_7",
          "doc": "Stay of 4-7 nights.",
          "versioning": {}
        },
        "lengthOfStayNights8To14": {
          "name": "lengthOfStayNights8To14",
          "value": "LENGTH_OF_STAY_NIGHTS_8_TO_14",
          "doc": "Stay of 8-14 nights.",
          "versioning": {}
        },
        "lengthOfStayNights15To21": {
          "name": "lengthOfStayNights15To21",
          "value": "LENGTH_OF_STAY_NIGHTS_15_TO_21",
          "doc": "Stay of 15-21 nights.",
          "versioning": {}
        },
        "lengthOfStayNights22To30": {
          "name": "lengthOfStayNights22To30",
          "value": "LENGTH_OF_STAY_NIGHTS_22_TO_30",
          "doc": "Stay of 22-30 nights.",
          "versioning": {}
        },
        "lengthOfStayNightsOver30": {
          "name": "lengthOfStayNightsOver30",
          "value": "LENGTH_OF_STAY_NIGHTS_OVER_30",
          "doc": "Stay of over 30 nights.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SetLiveOnGoogleRequestLiveOnGoogleStatus": {
      "name": "SetLiveOnGoogleRequestLiveOnGoogleStatus",
      "namespace": "Googlehotels",
      "doc": "Values SetLiveOnGoogleRequest.liveOnGoogleStatus accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "liveOnGoogleStatusUnspecified": {
          "name": "liveOnGoogleStatusUnspecified",
          "value": "LIVE_ON_GOOGLE_STATUS_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "liveOnGoogleStatusActive": {
          "name": "liveOnGoogleStatusActive",
          "value": "LIVE_ON_GOOGLE_STATUS_ACTIVE",
          "doc": "The property will show on Google unconditionally.",
          "versioning": {}
        },
        "liveOnGoogleStatusInactive": {
          "name": "liveOnGoogleStatusInactive",
          "value": "LIVE_ON_GOOGLE_STATUS_INACTIVE",
          "doc": "The property will not show on Google.",
          "versioning": {}
        },
        "liveOnGoogleStatusActiveOutsideDsaRegion": {
          "name": "liveOnGoogleStatusActiveOutsideDsaRegion",
          "value": "LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION",
          "doc": "The property will show on Google for users outside of DSA regions. Current regions include: EU.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponsePredictedBookOnGoogleScore": {
      "name": "SummarizePriceAccuracyResponsePredictedBookOnGoogleScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.predictedBookOnGoogleScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponseCurrentBookOnGoogleScore": {
      "name": "SummarizePriceAccuracyResponseCurrentBookOnGoogleScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.currentBookOnGoogleScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponseCurrentOverallScore": {
      "name": "SummarizePriceAccuracyResponseCurrentOverallScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.currentOverallScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponsePredictedOverallScore": {
      "name": "SummarizePriceAccuracyResponsePredictedOverallScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.predictedOverallScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponseCurrentWebsiteScore": {
      "name": "SummarizePriceAccuracyResponseCurrentWebsiteScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.currentWebsiteScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponsePredictedWebsiteScore": {
      "name": "SummarizePriceAccuracyResponsePredictedWebsiteScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.predictedWebsiteScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponseCurrentScore": {
      "name": "SummarizePriceAccuracyResponseCurrentScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.currentScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.SummarizePriceAccuracyResponsePredictedScore": {
      "name": "SummarizePriceAccuracyResponsePredictedScore",
      "namespace": "Googlehotels",
      "doc": "Values SummarizePriceAccuracyResponse.predictedScore accepts.",
      "decorators": {},
      "versioning": {},
      "members": {
        "priceAccuracyStateUnspecified": {
          "name": "priceAccuracyStateUnspecified",
          "value": "PRICE_ACCURACY_STATE_UNSPECIFIED",
          "doc": "Not specified.",
          "versioning": {}
        },
        "priceAccuracyStateUnknown": {
          "name": "priceAccuracyStateUnknown",
          "value": "PRICE_ACCURACY_STATE_UNKNOWN",
          "doc": "The value is unknown in this version.",
          "versioning": {}
        },
        "excellent": {
          "name": "excellent",
          "value": "EXCELLENT",
          "doc": "Average score exceeds the positioning threshold.",
          "versioning": {}
        },
        "good": {
          "name": "good",
          "value": "GOOD",
          "doc": "Average score is slightly below the positioning threshold. “Good” has been renamed to “Fair” in Hotel Center.",
          "versioning": {}
        },
        "poor": {
          "name": "poor",
          "value": "POOR",
          "doc": "Average score is well below the positioning threshold.",
          "versioning": {}
        },
        "atRisk": {
          "name": "atRisk",
          "value": "AT_RISK",
          "doc": "Average score is close to the account suspension threshold.",
          "versioning": {}
        },
        "failed": {
          "name": "failed",
          "value": "FAILED",
          "doc": "Average score is below the account suspension threshold.",
          "versioning": {}
        }
      }
    },
    "Googlehotels.Versions": {
      "name": "Versions",
      "namespace": "Googlehotels",
      "decorators": {},
      "versioning": {},
      "members": {
        "v3": {
          "name": "v3",
          "value": "v3",
          "doc": "Travel Partner API v3, document revision 20260901.",
          "versioning": {}
        }
      }
    }
  },
  "unions": {},
  "scalars": {
    "InferalRdf.DecimalString": {
      "name": "DecimalString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding a decimal, such as `\"12.34\"`.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:decimal"
      }
    },
    "InferalRdf.NonNegativeDecimalString": {
      "name": "NonNegativeDecimalString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding a decimal that is never negative, such as `\"12.34\"`.",
      "baseScalar": "InferalRdf.DecimalString",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {
        "minValue": 0
      },
      "versioning": {}
    },
    "InferalRdf.IntegerString": {
      "name": "IntegerString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding an integer, such as `\"-3\"`.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:integer"
      }
    },
    "InferalRdf.NonNegativeIntegerString": {
      "name": "NonNegativeIntegerString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding an integer that is never negative, such as `\"1204\"`.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:nonNegativeInteger"
      }
    },
    "InferalRdf.BooleanString": {
      "name": "BooleanString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding `\"true\"` or `\"false\"`.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:boolean"
      }
    },
    "InferalRdf.DateTimeString": {
      "name": "DateTimeString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding an ISO 8601 instant.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:dateTime"
      }
    },
    "InferalRdf.DateString": {
      "name": "DateString",
      "namespace": "InferalRdf",
      "doc": "A JSON string holding an ISO 8601 calendar date, with no time part.",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {},
      "rdf": {
        "datatypeUri": "xsd:date"
      }
    },
    "InferalRelay.GraphQLID": {
      "name": "GraphQLID",
      "namespace": "InferalRelay",
      "doc": "GraphQL ID scalar type.\n\nUse this for fields that map to GraphQL's built-in ID type\nbut aren't marked with",
      "baseScalar": "string",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {}
    },
    "Googlehotels.Int64AsString": {
      "name": "Int64AsString",
      "namespace": "Googlehotels",
      "baseScalar": "int64",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {}
    },
    "Googlehotels.Uint64AsString": {
      "name": "Uint64AsString",
      "namespace": "Googlehotels",
      "baseScalar": "uint64",
      "isReferenceType": false,
      "decorators": {},
      "constraints": {},
      "versioning": {}
    }
  },
  "operations": {},
  "webhooks": {}
}
