blob: 0096452dc92b531358744f129663c1c8d5facc71 [file]
// Copyright 2025 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Code generated file. DO NOT EDIT.
// Package addressvalidation provides access to the Address Validation API.
//
// For product documentation, see: https://developers.google.com/maps/documentation/addressvalidation
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
// import "google.golang.org/api/addressvalidation/v1"
// ...
// ctx := context.Background()
// addressvalidationService, err := addressvalidation.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
// addressvalidationService, err := addressvalidation.NewService(ctx, option.WithScopes(addressvalidation.MapsPlatformAddressvalidationScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
// addressvalidationService, err := addressvalidation.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
// config := &oauth2.Config{...}
// // ...
// token, err := config.Exchange(ctx, ...)
// addressvalidationService, err := addressvalidation.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package addressvalidation // import "google.golang.org/api/addressvalidation/v1"
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"log/slog"
"net/http"
"net/url"
"strconv"
"strings"
"github.com/googleapis/gax-go/v2/internallog"
googleapi "google.golang.org/api/googleapi"
internal "google.golang.org/api/internal"
gensupport "google.golang.org/api/internal/gensupport"
option "google.golang.org/api/option"
internaloption "google.golang.org/api/option/internaloption"
htransport "google.golang.org/api/transport/http"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version
var _ = internallog.New
const apiId = "addressvalidation:v1"
const apiName = "addressvalidation"
const apiVersion = "v1"
const basePath = "https://addressvalidation.googleapis.com/"
const basePathTemplate = "https://addressvalidation.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://addressvalidation.mtls.googleapis.com/"
// OAuth2 scopes used by this API.
const (
// See, edit, configure, and delete your Google Cloud data and see the email
// address for your Google Account.
CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
// Private Service:
// https://www.googleapis.com/auth/maps-platform.addressvalidation
MapsPlatformAddressvalidationScope = "https://www.googleapis.com/auth/maps-platform.addressvalidation"
)
// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
scopesOption := internaloption.WithDefaultScopes(
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/maps-platform.addressvalidation",
)
// NOTE: prepend, so we don't override user-specified scopes.
opts = append([]option.ClientOption{scopesOption}, opts...)
opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
opts = append(opts, internaloption.EnableNewAuthLibrary())
client, endpoint, err := htransport.NewClient(ctx, opts...)
if err != nil {
return nil, err
}
s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
s.V1 = NewV1Service(s)
if endpoint != "" {
s.BasePath = endpoint
}
return s, nil
}
// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
return NewService(context.TODO(), option.WithHTTPClient(client))
}
type Service struct {
client *http.Client
logger *slog.Logger
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
V1 *V1Service
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewV1Service(s *Service) *V1Service {
rs := &V1Service{s: s}
return rs
}
type V1Service struct {
s *Service
}
// GoogleGeoTypeViewport: A latitude-longitude viewport, represented as two
// diagonally opposite `low` and `high` points. A viewport is considered a
// closed region, i.e. it includes its boundary. The latitude bounds must range
// between -90 to 90 degrees inclusive, and the longitude bounds must range
// between -180 to 180 degrees inclusive. Various cases include: - If `low` =
// `high`, the viewport consists of that single point. - If `low.longitude` >
// `high.longitude`, the longitude range is inverted (the viewport crosses the
// 180 degree longitude line). - If `low.longitude` = -180 degrees and
// `high.longitude` = 180 degrees, the viewport includes all longitudes. - If
// `low.longitude` = 180 degrees and `high.longitude` = -180 degrees, the
// longitude range is empty. - If `low.latitude` > `high.latitude`, the
// latitude range is empty. Both `low` and `high` must be populated, and the
// represented box cannot be empty (as specified by the definitions above). An
// empty viewport will result in an error. For example, this viewport fully
// encloses New York City: { "low": { "latitude": 40.477398, "longitude":
// -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } }
type GoogleGeoTypeViewport struct {
// High: Required. The high point of the viewport.
High *GoogleTypeLatLng `json:"high,omitempty"`
// Low: Required. The low point of the viewport.
Low *GoogleTypeLatLng `json:"low,omitempty"`
// ForceSendFields is a list of field names (e.g. "High") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "High") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleGeoTypeViewport) MarshalJSON() ([]byte, error) {
type NoMethod GoogleGeoTypeViewport
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1Address: Details of the post-processed address.
// Post-processing includes correcting misspelled parts of the address,
// replacing incorrect parts, and inferring missing parts.
type GoogleMapsAddressvalidationV1Address struct {
// AddressComponents: Unordered list. The individual address components of the
// formatted and corrected address, along with validation information. This
// provides information on the validation status of the individual components.
// Address components are not ordered in a particular way. Do not make any
// assumptions on the ordering of the address components in the list.
AddressComponents []*GoogleMapsAddressvalidationV1AddressComponent `json:"addressComponents,omitempty"`
// FormattedAddress: The post-processed address, formatted as a single-line
// address following the address formatting rules of the region where the
// address is located. Note: the format of this address may not match the
// format of the address in the `postal_address` field. For example, the
// `postal_address` always represents the country as a 2 letter `region_code`,
// such as "US" or "NZ". By contrast, this field uses a longer form of the
// country name, such as "USA" or "New Zealand".
FormattedAddress string `json:"formattedAddress,omitempty"`
// MissingComponentTypes: The types of components that were expected to be
// present in a correctly formatted mailing address but were not found in the
// input AND could not be inferred. An example might be `['street_number',
// 'route']` for an input like "Boulder, Colorado, 80301, USA". The list of
// possible types can be found here
// (https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).
// **Note: you might see a missing component type when you think you've already
// supplied the missing component.** For example, this can happen when the
// input address contains the building name, but not the premise number. In the
// address "渋谷区渋谷3丁目 Shibuya Stream", the building name
// "Shibuya Stream" has the component type `premise`, but the premise number is
// missing, so `missing_component_types` will contain `premise`.
MissingComponentTypes []string `json:"missingComponentTypes,omitempty"`
// PostalAddress: The post-processed address represented as a postal address.
PostalAddress *GoogleTypePostalAddress `json:"postalAddress,omitempty"`
// UnconfirmedComponentTypes: The types of the components that are present in
// the `address_components` but could not be confirmed to be correct. This
// field is provided for the sake of convenience: its contents are equivalent
// to iterating through the `address_components` to find the types of all the
// components where the confirmation_level is not CONFIRMED or the inferred
// flag is not set to `true`. The list of possible types can be found here
// (https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).
UnconfirmedComponentTypes []string `json:"unconfirmedComponentTypes,omitempty"`
// UnresolvedTokens: Any tokens in the input that could not be resolved. This
// might be an input that was not recognized as a valid part of an address. For
// example, for an input such as "Parcel 0000123123 & 0000456456 Str # Guthrie
// Center IA 50115 US", the unresolved tokens might look like `["Parcel",
// "0000123123", "&", "0000456456"]`.
UnresolvedTokens []string `json:"unresolvedTokens,omitempty"`
// ForceSendFields is a list of field names (e.g. "AddressComponents") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AddressComponents") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1Address) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1Address
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1AddressComponent: Represents an address
// component, such as a street, city, or state.
type GoogleMapsAddressvalidationV1AddressComponent struct {
// ComponentName: The name for this component.
ComponentName *GoogleMapsAddressvalidationV1ComponentName `json:"componentName,omitempty"`
// ComponentType: The type of the address component. See Table 2: Additional
// types returned by the Places service
// (https://developers.google.com/places/web-service/supported_types#table2)
// for a list of possible types.
ComponentType string `json:"componentType,omitempty"`
// ConfirmationLevel: Indicates the level of certainty that we have that the
// component is correct.
//
// Possible values:
// "CONFIRMATION_LEVEL_UNSPECIFIED" - Default value. This value is unused.
// "CONFIRMED" - We were able to verify that this component exists and makes
// sense in the context of the rest of the address.
// "UNCONFIRMED_BUT_PLAUSIBLE" - This component could not be confirmed, but
// it is plausible that it exists. For example, a street number within a known
// valid range of numbers on a street where specific house numbers are not
// known.
// "UNCONFIRMED_AND_SUSPICIOUS" - This component was not confirmed and is
// likely to be wrong. For example, a neighborhood that does not fit the rest
// of the address.
ConfirmationLevel string `json:"confirmationLevel,omitempty"`
// Inferred: Indicates that the component was not part of the input, but we
// inferred it for the address location and believe it should be provided for a
// complete address.
Inferred bool `json:"inferred,omitempty"`
// Replaced: Indicates the name of the component was replaced with a completely
// different one, for example a wrong postal code being replaced with one that
// is correct for the address. This is not a cosmetic change, the input
// component has been changed to a different one.
Replaced bool `json:"replaced,omitempty"`
// SpellCorrected: Indicates a correction to a misspelling in the component
// name. The API does not always flag changes from one spelling variant to
// another, such as when changing "centre" to "center". It also does not always
// flag common misspellings, such as when changing "Amphitheater Pkwy" to
// "Amphitheatre Pkwy".
SpellCorrected bool `json:"spellCorrected,omitempty"`
// Unexpected: Indicates an address component that is not expected to be
// present in a postal address for the given region. We have retained it only
// because it was part of the input.
Unexpected bool `json:"unexpected,omitempty"`
// ForceSendFields is a list of field names (e.g. "ComponentName") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ComponentName") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1AddressComponent) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1AddressComponent
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1AddressMetadata: The metadata for the
// post-processed address. `metadata` is not guaranteed to be fully populated
// for every address sent to the Address Validation API.
type GoogleMapsAddressvalidationV1AddressMetadata struct {
// Business: Indicates that this is the address of a business. If unset,
// indicates that the value is unknown.
Business bool `json:"business,omitempty"`
// PoBox: Indicates that the address of a PO box. If unset, indicates that the
// value is unknown.
PoBox bool `json:"poBox,omitempty"`
// Residential: Indicates that this is the address of a residence. If unset,
// indicates that the value is unknown.
Residential bool `json:"residential,omitempty"`
// ForceSendFields is a list of field names (e.g. "Business") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Business") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1AddressMetadata) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1AddressMetadata
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ComponentName: A wrapper for the name of the
// component.
type GoogleMapsAddressvalidationV1ComponentName struct {
// LanguageCode: The BCP-47 language code. This will not be present if the
// component name is not associated with a language, such as a street number.
LanguageCode string `json:"languageCode,omitempty"`
// Text: The name text. For example, "5th Avenue" for a street name or "1253"
// for a street number.
Text string `json:"text,omitempty"`
// ForceSendFields is a list of field names (e.g. "LanguageCode") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "LanguageCode") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1ComponentName) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1ComponentName
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1Geocode: Contains information about the place
// the input was geocoded to.
type GoogleMapsAddressvalidationV1Geocode struct {
// Bounds: The bounds of the geocoded place.
Bounds *GoogleGeoTypeViewport `json:"bounds,omitempty"`
// FeatureSizeMeters: The size of the geocoded place, in meters. This is
// another measure of the coarseness of the geocoded location, but in physical
// size rather than in semantic meaning.
FeatureSizeMeters float64 `json:"featureSizeMeters,omitempty"`
// Location: The geocoded location of the input. Using place IDs is preferred
// over using addresses, latitude/longitude coordinates, or plus codes. Using
// coordinates when routing or calculating driving directions will always
// result in the point being snapped to the road nearest to those coordinates.
// This may not be a road that will quickly or safely lead to the destination
// and may not be near an access point to the property. Additionally, when a
// location is reverse geocoded, there is no guarantee that the returned
// address will match the original.
Location *GoogleTypeLatLng `json:"location,omitempty"`
// PlaceId: The PlaceID of the place this input geocodes to. For more
// information about Place IDs see here
// (https://developers.google.com/maps/documentation/places/web-service/place-id).
PlaceId string `json:"placeId,omitempty"`
// PlaceTypes: The type(s) of place that the input geocoded to. For example,
// `['locality', 'political']`. The full list of types can be found here
// (https://developers.google.com/maps/documentation/geocoding/requests-geocoding#Types).
PlaceTypes []string `json:"placeTypes,omitempty"`
// PlusCode: The plus code corresponding to the `location`.
PlusCode *GoogleMapsAddressvalidationV1PlusCode `json:"plusCode,omitempty"`
// ForceSendFields is a list of field names (e.g. "Bounds") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Bounds") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1Geocode) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1Geocode
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *GoogleMapsAddressvalidationV1Geocode) UnmarshalJSON(data []byte) error {
type NoMethod GoogleMapsAddressvalidationV1Geocode
var s1 struct {
FeatureSizeMeters gensupport.JSONFloat64 `json:"featureSizeMeters"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.FeatureSizeMeters = float64(s1.FeatureSizeMeters)
return nil
}
// GoogleMapsAddressvalidationV1LanguageOptions: Preview: This feature is in
// Preview (pre-GA). Pre-GA products and features might have limited support,
// and changes to pre-GA products and features might not be compatible with
// other pre-GA versions. Pre-GA Offerings are covered by the Google Maps
// Platform Service Specific Terms
// (https://cloud.google.com/maps-platform/terms/maps-service-terms). For more
// information, see the launch stage descriptions
// (https://developers.google.com/maps/launch-stages). Enables the Address
// Validation API to include additional information in the response.
type GoogleMapsAddressvalidationV1LanguageOptions struct {
// ReturnEnglishLatinAddress: Preview: Return a
// [google.maps.addressvalidation.v1.Address] in English. See
// [google.maps.addressvalidation.v1.ValidationResult.english_latin_address]
// for details.
ReturnEnglishLatinAddress bool `json:"returnEnglishLatinAddress,omitempty"`
// ForceSendFields is a list of field names (e.g. "ReturnEnglishLatinAddress")
// to unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ReturnEnglishLatinAddress") to
// include in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1LanguageOptions) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1LanguageOptions
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1PlusCode: Plus code (http://plus.codes) is a
// location reference with two formats: global code defining a 14mx14m
// (1/8000th of a degree) or smaller rectangle, and compound code, replacing
// the prefix with a reference location.
type GoogleMapsAddressvalidationV1PlusCode struct {
// CompoundCode: Place's compound code, such as "33GV+HQ, Ramberg, Norway",
// containing the suffix of the global code and replacing the prefix with a
// formatted name of a reference entity.
CompoundCode string `json:"compoundCode,omitempty"`
// GlobalCode: Place's global (full) code, such as "9FWM33GV+HQ", representing
// an 1/8000 by 1/8000 degree area (~14 by 14 meters).
GlobalCode string `json:"globalCode,omitempty"`
// ForceSendFields is a list of field names (e.g. "CompoundCode") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CompoundCode") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1PlusCode) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1PlusCode
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest: The request
// for sending validation feedback.
type GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest struct {
// Conclusion: Required. The outcome of the sequence of validation attempts. If
// this field is set to `VALIDATION_CONCLUSION_UNSPECIFIED`, an
// `INVALID_ARGUMENT` error will be returned.
//
// Possible values:
// "VALIDATION_CONCLUSION_UNSPECIFIED" - This value is unused. If the
// `ProvideValidationFeedbackRequest.conclusion` field is set to
// `VALIDATION_CONCLUSION_UNSPECIFIED`, an `INVALID_ARGUMENT` error will be
// returned.
// "VALIDATED_VERSION_USED" - The version of the address returned by the
// Address Validation API was used for the transaction.
// "USER_VERSION_USED" - The version of the address provided by the user was
// used for the transaction
// "UNVALIDATED_VERSION_USED" - A version of the address that was entered
// after the last validation attempt but that was not re-validated was used for
// the transaction.
// "UNUSED" - The transaction was abandoned and the address was not used.
Conclusion string `json:"conclusion,omitempty"`
// ResponseId: Required. The ID of the response that this feedback is for. This
// should be the response_id from the first response in a series of address
// validation attempts.
ResponseId string `json:"responseId,omitempty"`
// ForceSendFields is a list of field names (e.g. "Conclusion") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Conclusion") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse: The response
// for validation feedback. The response is empty if the feedback is sent
// successfully.
type GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse struct {
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
}
// GoogleMapsAddressvalidationV1UspsAddress: USPS representation of a US
// address.
type GoogleMapsAddressvalidationV1UspsAddress struct {
// City: City name.
City string `json:"city,omitempty"`
// CityStateZipAddressLine: City + state + postal code.
CityStateZipAddressLine string `json:"cityStateZipAddressLine,omitempty"`
// Firm: Firm name.
Firm string `json:"firm,omitempty"`
// FirstAddressLine: First address line.
FirstAddressLine string `json:"firstAddressLine,omitempty"`
// SecondAddressLine: Second address line.
SecondAddressLine string `json:"secondAddressLine,omitempty"`
// State: 2 letter state code.
State string `json:"state,omitempty"`
// Urbanization: Puerto Rican urbanization name.
Urbanization string `json:"urbanization,omitempty"`
// ZipCode: Postal code e.g. 10009.
ZipCode string `json:"zipCode,omitempty"`
// ZipCodeExtension: 4-digit postal code extension e.g. 5023.
ZipCodeExtension string `json:"zipCodeExtension,omitempty"`
// ForceSendFields is a list of field names (e.g. "City") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "City") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1UspsAddress) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1UspsAddress
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1UspsData: The USPS data for the address.
// `uspsData` is not guaranteed to be fully populated for every US or PR
// address sent to the Address Validation API. It's recommended to integrate
// the backup address fields in the response if you utilize uspsData as the
// primary part of the response.
type GoogleMapsAddressvalidationV1UspsData struct {
// AbbreviatedCity: Abbreviated city.
AbbreviatedCity string `json:"abbreviatedCity,omitempty"`
// AddressRecordType: Type of the address record that matches the input
// address. * `F`: FIRM. This is a match to a Firm Record, which is the finest
// level of match available for an address. * `G`: GENERAL DELIVERY. This is a
// match to a General Delivery record. * `H`: BUILDING / APARTMENT. This is a
// match to a Building or Apartment record. * `P`: POST OFFICE BOX. This is a
// match to a Post Office Box. * `R`: RURAL ROUTE or HIGHWAY CONTRACT: This is
// a match to either a Rural Route or a Highway Contract record, both of which
// may have associated Box Number ranges. * `S`: STREET RECORD: This is a match
// to a Street record containing a valid primary number range.
AddressRecordType string `json:"addressRecordType,omitempty"`
// CarrierRoute: The carrier route code. A four character code consisting of a
// one letter prefix and a three digit route designator. Prefixes: * `C`:
// Carrier route (or city route) * `R`: Rural route * `H`: Highway Contract
// Route * `B`: Post Office Box Section * `G`: General delivery unit
CarrierRoute string `json:"carrierRoute,omitempty"`
// CarrierRouteIndicator: Carrier route rate sort indicator.
CarrierRouteIndicator string `json:"carrierRouteIndicator,omitempty"`
// CassProcessed: Indicator that the request has been CASS processed.
CassProcessed bool `json:"cassProcessed,omitempty"`
// County: County name.
County string `json:"county,omitempty"`
// DefaultAddress: Indicator that a default address was found, but more
// specific addresses exists.
DefaultAddress bool `json:"defaultAddress,omitempty"`
// DeliveryPointCheckDigit: The delivery point check digit. This number is
// added to the end of the delivery_point_barcode for mechanically scanned
// mail. Adding all the digits of the delivery_point_barcode,
// delivery_point_check_digit, postal code, and ZIP+4 together should yield a
// number divisible by 10.
DeliveryPointCheckDigit string `json:"deliveryPointCheckDigit,omitempty"`
// DeliveryPointCode: 2 digit delivery point code
DeliveryPointCode string `json:"deliveryPointCode,omitempty"`
// DpvCmra: Indicates if the address is a CMRA (Commercial Mail Receiving
// Agency)--a private business receiving mail for clients. Returns a single
// character. * `Y`: The address is a CMRA * `N`: The address is not a CMRA
DpvCmra string `json:"dpvCmra,omitempty"`
// DpvConfirmation: The possible values for DPV confirmation. Returns a single
// character or returns no value. * `N`: Primary and any secondary number
// information failed to DPV confirm. * `D`: Address was DPV confirmed for the
// primary number only, and the secondary number information was missing. *
// `S`: Address was DPV confirmed for the primary number only, and the
// secondary number information was present but not confirmed. * `Y`: Address
// was DPV confirmed for primary and any secondary numbers. * Empty: If the
// response does not contain a `dpv_confirmation` value, the address was not
// submitted for DPV confirmation.
DpvConfirmation string `json:"dpvConfirmation,omitempty"`
// DpvDoorNotAccessible: Flag indicates addresses where USPS cannot knock on a
// door to deliver mail. Returns a single character. * `Y`: The door is not
// accessible. * `N`: No indication the door is not accessible.
DpvDoorNotAccessible string `json:"dpvDoorNotAccessible,omitempty"`
// DpvDrop: Flag indicates mail is delivered to a single receptable at a site.
// Returns a single character. * `Y`: The mail is delivered to a single
// receptable at a site. * `N`: The mail is not delivered to a single
// receptable at a site.
DpvDrop string `json:"dpvDrop,omitempty"`
// DpvEnhancedDeliveryCode: Indicates that more than one DPV return code is
// valid for the address. Returns a single character. * `Y`: Address was DPV
// confirmed for primary and any secondary numbers. * `N`: Primary and any
// secondary number information failed to DPV confirm. * `S`: Address was DPV
// confirmed for the primary number only, and the secondary number information
// was present but not confirmed, or a single trailing alpha on a primary
// number was dropped to make a DPV match and secondary information required. *
// `D`: Address was DPV confirmed for the primary number only, and the
// secondary number information was missing. * `R`: Address confirmed but
// assigned to phantom route R777 and R779 and USPS delivery is not provided.
DpvEnhancedDeliveryCode string `json:"dpvEnhancedDeliveryCode,omitempty"`
// DpvFootnote: The footnotes from delivery point validation. Multiple
// footnotes may be strung together in the same string. * `AA`: Input address
// matched to the ZIP+4 file * `A1`: Input address was not matched to the ZIP+4
// file * `BB`: Matched to DPV (all components) * `CC`: Secondary number not
// matched and not required * `C1`: Secondary number not matched but required *
// `N1`: High-rise address missing secondary number * `M1`: Primary number
// missing * `M3`: Primary number invalid * `P1`: Input address PO, RR or HC
// box number missing * `P3`: Input address PO, RR, or HC Box number invalid *
// `F1`: Input address matched to a military address * `G1`: Input address
// matched to a general delivery address * `U1`: Input address matched to a
// unique ZIP code * `PB`: Input address matched to PBSA record * `RR`: DPV
// confirmed address with PMB information * `R1`: DPV confirmed address without
// PMB information * `R7`: Carrier Route R777 or R779 record * `IA`: Informed
// Address identified * `TA`: Primary number matched by dropping a trailing
// alpha
DpvFootnote string `json:"dpvFootnote,omitempty"`
// DpvNoSecureLocation: Flag indicates door is accessible, but package will not
// be left due to security concerns. Returns a single character. * `Y`: The
// package will not be left due to security concerns. * `N`: No indication the
// package will not be left due to security concerns.
DpvNoSecureLocation string `json:"dpvNoSecureLocation,omitempty"`
// DpvNoStat: Is this a no stat address or an active address? No stat addresses
// are ones which are not continuously occupied or addresses that the USPS does
// not service. Returns a single character. * `Y`: The address is not active *
// `N`: The address is active
DpvNoStat string `json:"dpvNoStat,omitempty"`
// DpvNoStatReasonCode: Indicates the NoStat type. Returns a reason code as
// int. * `1`: IDA (Internal Drop Address) – Addresses that do not receive
// mail directly from the USPS but are delivered to a drop address that
// services them. * `2`: CDS - Addresses that have not yet become deliverable.
// For example, a new subdivision where lots and primary numbers have been
// determined, but no structure exists yet for occupancy. * `3`: Collision -
// Addresses that do not actually DPV confirm. * `4`: CMZ (College, Military
// and Other Types) - ZIP + 4 records USPS has incorporated into the data. *
// `5`: Regular - Indicates addresses not receiving delivery and the addresses
// are not counted as possible deliveries. * `6`: Secondary Required - The
// address requires secondary information.
DpvNoStatReasonCode int64 `json:"dpvNoStatReasonCode,omitempty"`
// DpvNonDeliveryDays: Flag indicates mail delivery is not performed every day
// of the week. Returns a single character. * `Y`: The mail delivery is not
// performed every day of the week. * `N`: No indication the mail delivery is
// not performed every day of the week.
DpvNonDeliveryDays string `json:"dpvNonDeliveryDays,omitempty"`
// DpvNonDeliveryDaysValues: Integer identifying non-delivery days. It can be
// interrogated using bit flags: 0x40 – Sunday is a non-delivery day 0x20 –
// Monday is a non-delivery day 0x10 – Tuesday is a non-delivery day 0x08 –
// Wednesday is a non-delivery day 0x04 – Thursday is a non-delivery day 0x02
// – Friday is a non-delivery day 0x01 – Saturday is a non-delivery day
DpvNonDeliveryDaysValues int64 `json:"dpvNonDeliveryDaysValues,omitempty"`
// DpvPbsa: Indicates the address was matched to PBSA record. Returns a single
// character. * `Y`: The address was matched to PBSA record. * `N`: The address
// was not matched to PBSA record.
DpvPbsa string `json:"dpvPbsa,omitempty"`
// DpvThrowback: Indicates that mail is not delivered to the street address.
// Returns a single character. * `Y`: The mail is not delivered to the street
// address. * `N`: The mail is delivered to the street address.
DpvThrowback string `json:"dpvThrowback,omitempty"`
// DpvVacant: Is this place vacant? Returns a single character. * `Y`: The
// address is vacant * `N`: The address is not vacant
DpvVacant string `json:"dpvVacant,omitempty"`
// ElotFlag: eLOT Ascending/Descending Flag (A/D).
ElotFlag string `json:"elotFlag,omitempty"`
// ElotNumber: Enhanced Line of Travel (eLOT) number.
ElotNumber string `json:"elotNumber,omitempty"`
// ErrorMessage: Error message for USPS data retrieval. This is populated when
// USPS processing is suspended because of the detection of artificially
// created addresses. The USPS data fields might not be populated when this
// error is present.
ErrorMessage string `json:"errorMessage,omitempty"`
// EwsNoMatch: The delivery address is matchable, but the EWS file indicates
// that an exact match will be available soon.
EwsNoMatch bool `json:"ewsNoMatch,omitempty"`
// FipsCountyCode: FIPS county code.
FipsCountyCode string `json:"fipsCountyCode,omitempty"`
// LacsLinkIndicator: LACSLink indicator.
LacsLinkIndicator string `json:"lacsLinkIndicator,omitempty"`
// LacsLinkReturnCode: LACSLink return code.
LacsLinkReturnCode string `json:"lacsLinkReturnCode,omitempty"`
// PmbDesignator: PMB (Private Mail Box) unit designator.
PmbDesignator string `json:"pmbDesignator,omitempty"`
// PmbNumber: PMB (Private Mail Box) number;
PmbNumber string `json:"pmbNumber,omitempty"`
// PoBoxOnlyPostalCode: PO Box only postal code.
PoBoxOnlyPostalCode bool `json:"poBoxOnlyPostalCode,omitempty"`
// PostOfficeCity: Main post office city.
PostOfficeCity string `json:"postOfficeCity,omitempty"`
// PostOfficeState: Main post office state.
PostOfficeState string `json:"postOfficeState,omitempty"`
// StandardizedAddress: USPS standardized address.
StandardizedAddress *GoogleMapsAddressvalidationV1UspsAddress `json:"standardizedAddress,omitempty"`
// SuitelinkFootnote: Footnotes from matching a street or highrise record to
// suite information. If business name match is found, the secondary number is
// returned. * `A`: SuiteLink record match, business address improved. * `00`:
// No match, business address is not improved.
SuitelinkFootnote string `json:"suitelinkFootnote,omitempty"`
// ForceSendFields is a list of field names (e.g. "AbbreviatedCity") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AbbreviatedCity") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1UspsData) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1UspsData
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ValidateAddressRequest: The request for
// validating an address.
type GoogleMapsAddressvalidationV1ValidateAddressRequest struct {
// Address: Required. The address being validated. Unformatted addresses should
// be submitted via `address_lines`. The total length of the fields in this
// input must not exceed 280 characters. Supported regions can be found here
// (https://developers.google.com/maps/documentation/address-validation/coverage).
// The language_code value in the input address is reserved for future uses and
// is ignored today. The validated address result will be populated based on
// the preferred language for the given address, as identified by the system.
// The Address Validation API ignores the values in recipients and
// organization. Any values in those fields will be discarded and not returned.
// Please do not set them.
Address *GoogleTypePostalAddress `json:"address,omitempty"`
// EnableUspsCass: Enables USPS CASS compatible mode. This affects _only_ the
// [google.maps.addressvalidation.v1.ValidationResult.usps_data] field of
// [google.maps.addressvalidation.v1.ValidationResult]. Note: for USPS CASS
// enabled requests for addresses in Puerto Rico, a
// [google.type.PostalAddress.region_code] of the `address` must be provided as
// "PR", or an [google.type.PostalAddress.administrative_area] of the `address`
// must be provided as "Puerto Rico" (case-insensitive) or "PR". It's
// recommended to use a componentized `address`, or alternatively specify at
// least two [google.type.PostalAddress.address_lines] where the first line
// contains the street number and name and the second line contains the city,
// state, and zip code.
EnableUspsCass bool `json:"enableUspsCass,omitempty"`
// LanguageOptions: Optional. Preview: This feature is in Preview (pre-GA).
// Pre-GA products and features might have limited support, and changes to
// pre-GA products and features might not be compatible with other pre-GA
// versions. Pre-GA Offerings are covered by the Google Maps Platform Service
// Specific Terms
// (https://cloud.google.com/maps-platform/terms/maps-service-terms). For more
// information, see the launch stage descriptions
// (https://developers.google.com/maps/launch-stages). Enables the Address
// Validation API to include additional information in the response.
LanguageOptions *GoogleMapsAddressvalidationV1LanguageOptions `json:"languageOptions,omitempty"`
// PreviousResponseId: This field must be empty for the first address
// validation request. If more requests are necessary to fully validate a
// single address (for example if the changes the user makes after the initial
// validation need to be re-validated), then each followup request must
// populate this field with the response_id from the very first response in the
// validation sequence.
PreviousResponseId string `json:"previousResponseId,omitempty"`
// SessionToken: Optional. A string which identifies an Autocomplete session
// for billing purposes. Must be a URL and filename safe base64 string with at
// most 36 ASCII characters in length. Otherwise an INVALID_ARGUMENT error is
// returned. The session begins when the user makes an Autocomplete query, and
// concludes when they select a place and a call to Place Details or Address
// Validation is made. Each session can have multiple Autocomplete queries,
// followed by one Place Details or Address Validation request. The credentials
// used for each request within a session must belong to the same Google Cloud
// Console project. Once a session has concluded, the token is no longer valid;
// your app must generate a fresh token for each session. If the `sessionToken`
// parameter is omitted, or if you reuse a session token, the session is
// charged as if no session token was provided (each request is billed
// separately). Note: Address Validation can only be used in sessions with the
// Autocomplete (New) API, not the Autocomplete API. See
// https://developers.google.com/maps/documentation/places/web-service/session-pricing
// for more details.
SessionToken string `json:"sessionToken,omitempty"`
// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Address") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1ValidateAddressRequest) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1ValidateAddressRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ValidateAddressResponse: The response to an
// address validation request.
type GoogleMapsAddressvalidationV1ValidateAddressResponse struct {
// ResponseId: The UUID that identifies this response. If the address needs to
// be re-validated, this UUID *must* accompany the new request.
ResponseId string `json:"responseId,omitempty"`
// Result: The result of the address validation.
Result *GoogleMapsAddressvalidationV1ValidationResult `json:"result,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "ResponseId") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ResponseId") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1ValidateAddressResponse) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1ValidateAddressResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1ValidationResult: The result of validating an
// address.
type GoogleMapsAddressvalidationV1ValidationResult struct {
// Address: Information about the address itself as opposed to the geocode.
Address *GoogleMapsAddressvalidationV1Address `json:"address,omitempty"`
// EnglishLatinAddress: Preview: This feature is in Preview (pre-GA). Pre-GA
// products and features might have limited support, and changes to pre-GA
// products and features might not be compatible with other pre-GA versions.
// Pre-GA Offerings are covered by the Google Maps Platform Service Specific
// Terms (https://cloud.google.com/maps-platform/terms/maps-service-terms). For
// more information, see the launch stage descriptions
// (https://developers.google.com/maps/launch-stages). The address translated
// to English. Translated addresses are not reusable as API input. The service
// provides them so that the user can use their native language to confirm or
// deny the validation of the originally-provided address. If part of the
// address doesn't have an English translation, the service returns that part
// in an alternate language that uses a Latin script. See here
// (https://developers.google.com/maps/documentation/address-validation/convert-addresses-english)
// for an explanation of how the alternate language is selected. If part of the
// address doesn't have any translations or transliterations in a language that
// uses a Latin script, the service returns that part in the local language
// associated with the address. Enable this output by using the
// [google.maps.addressvalidation.v1.LanguageOptions.return_english_latin_addres
// s] flag. Note: the
// [google.maps.addressvalidation.v1.Address.unconfirmed_component_types] field
// in the `english_latin_address` and the
// [google.maps.addressvalidation.v1.AddressComponent.confirmation_level]
// fields in `english_latin_address.address_components` are not populated.
EnglishLatinAddress *GoogleMapsAddressvalidationV1Address `json:"englishLatinAddress,omitempty"`
// Geocode: Information about the location and place that the address geocoded
// to.
Geocode *GoogleMapsAddressvalidationV1Geocode `json:"geocode,omitempty"`
// Metadata: Other information relevant to deliverability. `metadata` is not
// guaranteed to be fully populated for every address sent to the Address
// Validation API.
Metadata *GoogleMapsAddressvalidationV1AddressMetadata `json:"metadata,omitempty"`
// UspsData: Extra deliverability flags provided by USPS. Only provided in
// region `US` and `PR`.
UspsData *GoogleMapsAddressvalidationV1UspsData `json:"uspsData,omitempty"`
// Verdict: Overall verdict flags
Verdict *GoogleMapsAddressvalidationV1Verdict `json:"verdict,omitempty"`
// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Address") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1ValidationResult) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1ValidationResult
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleMapsAddressvalidationV1Verdict: High level overview of the address
// validation result and geocode.
type GoogleMapsAddressvalidationV1Verdict struct {
// AddressComplete: The post-processed address is considered complete if there
// are no unresolved tokens, no unexpected or missing address components. If
// unset, indicates that the value is `false`. See `missing_component_types`,
// `unresolved_tokens` or `unexpected` fields for more details.
AddressComplete bool `json:"addressComplete,omitempty"`
// GeocodeGranularity: Information about the granularity of the `geocode`. This
// can be understood as the semantic meaning of how coarse or fine the geocoded
// location is. This can differ from the `validation_granularity` above
// occasionally. For example, our database might record the existence of an
// apartment number but do not have a precise location for the apartment within
// a big apartment complex. In that case, the `validation_granularity` will be
// `SUB_PREMISE` but the `geocode_granularity` will be `PREMISE`.
//
// Possible values:
// "GRANULARITY_UNSPECIFIED" - Default value. This value is unused.
// "SUB_PREMISE" - Below-building level result, such as an apartment.
// "PREMISE" - Building-level result.
// "PREMISE_PROXIMITY" - A geocode that approximates the building-level
// location of the address.
// "BLOCK" - The address or geocode indicates a block. Only used in regions
// which have block-level addressing, such as Japan.
// "ROUTE" - The geocode or address is granular to route, such as a street,
// road, or highway.
// "OTHER" - All other granularities, which are bucketed together since they
// are not deliverable.
GeocodeGranularity string `json:"geocodeGranularity,omitempty"`
// HasInferredComponents: At least one address component was inferred (added)
// that wasn't in the input, see
// [google.maps.addressvalidation.v1.Address.address_components] for details.
HasInferredComponents bool `json:"hasInferredComponents,omitempty"`
// HasReplacedComponents: At least one address component was replaced, see
// [google.maps.addressvalidation.v1.Address.address_components] for details.
HasReplacedComponents bool `json:"hasReplacedComponents,omitempty"`
// HasSpellCorrectedComponents: At least one address component was
// spell-corrected, see
// [google.maps.addressvalidation.v1.Address.address_components] for details.
HasSpellCorrectedComponents bool `json:"hasSpellCorrectedComponents,omitempty"`
// HasUnconfirmedComponents: At least one address component cannot be
// categorized or validated, see
// [google.maps.addressvalidation.v1.Address.address_components] for details.
HasUnconfirmedComponents bool `json:"hasUnconfirmedComponents,omitempty"`
// InputGranularity: The granularity of the **input** address. This is the
// result of parsing the input address and does not give any validation
// signals. For validation signals, refer to `validation_granularity` below.
// For example, if the input address includes a specific apartment number, then
// the `input_granularity` here will be `SUB_PREMISE`. If the address
// validation service cannot match the apartment number in the databases or the
// apartment number is invalid, the `validation_granularity` will likely be
// `PREMISE` or more coarse.
//
// Possible values:
// "GRANULARITY_UNSPECIFIED" - Default value. This value is unused.
// "SUB_PREMISE" - Below-building level result, such as an apartment.
// "PREMISE" - Building-level result.
// "PREMISE_PROXIMITY" - A geocode that approximates the building-level
// location of the address.
// "BLOCK" - The address or geocode indicates a block. Only used in regions
// which have block-level addressing, such as Japan.
// "ROUTE" - The geocode or address is granular to route, such as a street,
// road, or highway.
// "OTHER" - All other granularities, which are bucketed together since they
// are not deliverable.
InputGranularity string `json:"inputGranularity,omitempty"`
// PossibleNextAction: Preview: This feature is in Preview (pre-GA). Pre-GA
// products and features might have limited support, and changes to pre-GA
// products and features might not be compatible with other pre-GA versions.
// Pre-GA Offerings are covered by the Google Maps Platform Service Specific
// Terms (https://cloud.google.com/maps-platform/terms/maps-service-terms). For
// more information, see the launch stage descriptions
// (https://developers.google.com/maps/launch-stages). Offers an interpretive
// summary of the API response, intended to assist in determining a potential
// subsequent action to take. This field is derived from other fields in the
// API response and should not be considered as a guarantee of address accuracy
// or deliverability. See Build your validation logic
// (https://developers.google.com/maps/documentation/address-validation/build-validation-logic)
// for more details.
//
// Possible values:
// "POSSIBLE_NEXT_ACTION_UNSPECIFIED" - Default value. This value is unused.
// "FIX" - One or more fields of the API response indicate a potential issue
// with the post-processed address, for example the
// `verdict.validation_granularity` is `OTHER`. Prompting your customer to edit
// the address could help improve the quality of the address.
// "CONFIRM_ADD_SUBPREMISES" - The API response indicates the post-processed
// address might be missing a subpremises. Prompting your customer to review
// the address and consider adding a unit number could help improve the quality
// of the address. The post-processed address might also have other minor
// issues. Note: this enum value can only be returned for US addresses.
// "CONFIRM" - One or more fields of the API response indicate potential
// minor issues with the post-processed address, for example the `postal_code`
// address component was `replaced`. Prompting your customer to review the
// address could help improve the quality of the address.
// "ACCEPT" - The API response does not contain signals that warrant one of
// the other PossibleNextAction values. You might consider using the
// post-processed address without further prompting your customer, though this
// does not guarantee the address is valid, and the address might still contain
// corrections. It is your responsibility to determine if and how to prompt
// your customer, depending on your own risk assessment.
PossibleNextAction string `json:"possibleNextAction,omitempty"`
// ValidationGranularity: The level of granularity for the post-processed
// address that the API can fully validate. For example, a
// `validation_granularity` of `PREMISE` indicates all address components at
// the level of `PREMISE` or more coarse can be validated. Per address
// component validation result can be found in
// [google.maps.addressvalidation.v1.Address.address_components].
//
// Possible values:
// "GRANULARITY_UNSPECIFIED" - Default value. This value is unused.
// "SUB_PREMISE" - Below-building level result, such as an apartment.
// "PREMISE" - Building-level result.
// "PREMISE_PROXIMITY" - A geocode that approximates the building-level
// location of the address.
// "BLOCK" - The address or geocode indicates a block. Only used in regions
// which have block-level addressing, such as Japan.
// "ROUTE" - The geocode or address is granular to route, such as a street,
// road, or highway.
// "OTHER" - All other granularities, which are bucketed together since they
// are not deliverable.
ValidationGranularity string `json:"validationGranularity,omitempty"`
// ForceSendFields is a list of field names (e.g. "AddressComplete") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AddressComplete") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleMapsAddressvalidationV1Verdict) MarshalJSON() ([]byte, error) {
type NoMethod GoogleMapsAddressvalidationV1Verdict
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// GoogleTypeLatLng: 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.
type GoogleTypeLatLng struct {
// Latitude: The latitude in degrees. It must be in the range [-90.0, +90.0].
Latitude float64 `json:"latitude,omitempty"`
// Longitude: The longitude in degrees. It must be in the range [-180.0,
// +180.0].
Longitude float64 `json:"longitude,omitempty"`
// ForceSendFields is a list of field names (e.g. "Latitude") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Latitude") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleTypeLatLng) MarshalJSON() ([]byte, error) {
type NoMethod GoogleTypeLatLng
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *GoogleTypeLatLng) UnmarshalJSON(data []byte) error {
type NoMethod GoogleTypeLatLng
var s1 struct {
Latitude gensupport.JSONFloat64 `json:"latitude"`
Longitude gensupport.JSONFloat64 `json:"longitude"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.Latitude = float64(s1.Latitude)
s.Longitude = float64(s1.Longitude)
return nil
}
// GoogleTypePostalAddress: Represents a postal address, such as for postal
// delivery or payments addresses. With a postal address, a postal service can
// deliver items to a premise, P.O. box, or similar. A postal address is not
// intended to model geographical locations like roads, towns, or mountains. In
// typical usage, an address would be created by user input or from importing
// existing data, depending on the type of process. Advice on address input or
// editing: - Use an internationalization-ready address widget such as
// https://github.com/google/libaddressinput. - Users should not be presented
// with UI elements for input or editing of fields outside countries where that
// field is used. For more guidance on how to use this schema, see:
// https://support.google.com/business/answer/6397478.
type GoogleTypePostalAddress struct {
// AddressLines: Unstructured address lines describing the lower levels of an
// address. Because values in `address_lines` do not have type information and
// may sometimes contain multiple values in a single field (for example,
// "Austin, TX"), it is important that the line order is clear. The order of
// address lines should be "envelope order" for the country or region of the
// address. In places where this can vary (for example, Japan),
// `address_language` is used to make it explicit (for example, "ja" for
// large-to-small ordering and "ja-Latn" or "en" for small-to-large). In this
// way, the most specific line of an address can be selected based on the
// language. The minimum permitted structural representation of an address
// consists of a `region_code` with all remaining information placed in the
// `address_lines`. It would be possible to format such an address very
// approximately without geocoding, but no semantic reasoning could be made
// about any of the address components until it was at least partially
// resolved. Creating an address only containing a `region_code` and
// `address_lines` and then geocoding is the recommended way to handle
// completely unstructured addresses (as opposed to guessing which parts of the
// address should be localities or administrative areas).
AddressLines []string `json:"addressLines,omitempty"`
// AdministrativeArea: Optional. Highest administrative subdivision which is
// used for postal addresses of a country or region. For example, this can be a
// state, a province, an oblast, or a prefecture. For Spain, this is the
// province and not the autonomous community (for example, "Barcelona" and not
// "Catalonia"). Many countries don't use an administrative area in postal
// addresses. For example, in Switzerland, this should be left unpopulated.
AdministrativeArea string `json:"administrativeArea,omitempty"`
// LanguageCode: Optional. BCP-47 language code of the contents of this address
// (if known). This is often the UI language of the input form or is expected
// to match one of the languages used in the address' country/region, or their
// transliterated equivalents. This can affect formatting in certain countries,
// but is not critical to the correctness of the data and will never affect any
// validation or other non-formatting related operations. If this value is not
// known, it should be omitted (rather than specifying a possibly incorrect
// default). Examples: "zh-Hant", "ja", "ja-Latn", "en".
LanguageCode string `json:"languageCode,omitempty"`
// Locality: Optional. Generally refers to the city or town portion of the
// address. Examples: US city, IT comune, UK post town. In regions of the world
// where localities are not well defined or do not fit into this structure
// well, leave `locality` empty and use `address_lines`.
Locality string `json:"locality,omitempty"`
// Organization: Optional. The name of the organization at the address.
Organization string `json:"organization,omitempty"`
// PostalCode: Optional. Postal code of the address. Not all countries use or
// require postal codes to be present, but where they are used, they may
// trigger additional validation with other parts of the address (for example,
// state or zip code validation in the United States).
PostalCode string `json:"postalCode,omitempty"`
// Recipients: Optional. The recipient at the address. This field may, under
// certain circumstances, contain multiline information. For example, it might
// contain "care of" information.
Recipients []string `json:"recipients,omitempty"`
// RegionCode: Required. CLDR region code of the country/region of the address.
// This is never inferred and it is up to the user to ensure the value is
// correct. See https://cldr.unicode.org/ and
// https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
// for details. Example: "CH" for Switzerland.
RegionCode string `json:"regionCode,omitempty"`
// Revision: The schema revision of the `PostalAddress`. This must be set to 0,
// which is the latest revision. All new revisions **must** be backward
// compatible with old revisions.
Revision int64 `json:"revision,omitempty"`
// SortingCode: Optional. Additional, country-specific, sorting code. This is
// not used in most regions. Where it is used, the value is either a string
// like "CEDEX", optionally followed by a number (for example, "CEDEX 7"), or
// just a number alone, representing the "sector code" (Jamaica), "delivery
// area indicator" (Malawi) or "post office indicator" (Côte d'Ivoire).
SortingCode string `json:"sortingCode,omitempty"`
// Sublocality: Optional. Sublocality of the address. For example, this can be
// a neighborhood, borough, or district.
Sublocality string `json:"sublocality,omitempty"`
// ForceSendFields is a list of field names (e.g. "AddressLines") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AddressLines") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s GoogleTypePostalAddress) MarshalJSON() ([]byte, error) {
type NoMethod GoogleTypePostalAddress
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
type V1ProvideValidationFeedbackCall struct {
s *Service
googlemapsaddressvalidationv1providevalidationfeedbackrequest *GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// ProvideValidationFeedback: Feedback about the outcome of the sequence of
// validation attempts. This should be the last call made after a sequence of
// validation calls for the same address, and should be called once the
// transaction is concluded. This should only be sent once for the sequence of
// `ValidateAddress` requests needed to validate an address fully.
func (r *V1Service) ProvideValidationFeedback(googlemapsaddressvalidationv1providevalidationfeedbackrequest *GoogleMapsAddressvalidationV1ProvideValidationFeedbackRequest) *V1ProvideValidationFeedbackCall {
c := &V1ProvideValidationFeedbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.googlemapsaddressvalidationv1providevalidationfeedbackrequest = googlemapsaddressvalidationv1providevalidationfeedbackrequest
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V1ProvideValidationFeedbackCall) Fields(s ...googleapi.Field) *V1ProvideValidationFeedbackCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *V1ProvideValidationFeedbackCall) Context(ctx context.Context) *V1ProvideValidationFeedbackCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V1ProvideValidationFeedbackCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *V1ProvideValidationFeedbackCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlemapsaddressvalidationv1providevalidationfeedbackrequest)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1:provideValidationFeedback")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "addressvalidation.provideValidationFeedback", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "addressvalidation.provideValidationFeedback" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse.ServerRespons
// e.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *V1ProvideValidationFeedbackCall) Do(opts ...googleapi.CallOption) (*GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &GoogleMapsAddressvalidationV1ProvideValidationFeedbackResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "addressvalidation.provideValidationFeedback", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type V1ValidateAddressCall struct {
s *Service
googlemapsaddressvalidationv1validateaddressrequest *GoogleMapsAddressvalidationV1ValidateAddressRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// ValidateAddress: Validates an address.
func (r *V1Service) ValidateAddress(googlemapsaddressvalidationv1validateaddressrequest *GoogleMapsAddressvalidationV1ValidateAddressRequest) *V1ValidateAddressCall {
c := &V1ValidateAddressCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.googlemapsaddressvalidationv1validateaddressrequest = googlemapsaddressvalidationv1validateaddressrequest
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V1ValidateAddressCall) Fields(s ...googleapi.Field) *V1ValidateAddressCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *V1ValidateAddressCall) Context(ctx context.Context) *V1ValidateAddressCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V1ValidateAddressCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *V1ValidateAddressCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlemapsaddressvalidationv1validateaddressrequest)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1:validateAddress")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "addressvalidation.validateAddress", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "addressvalidation.validateAddress" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleMapsAddressvalidationV1ValidateAddressResponse.ServerResponse.Header
// or (if a response was returned at all) in error.(*googleapi.Error).Header.
// Use googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *V1ValidateAddressCall) Do(opts ...googleapi.CallOption) (*GoogleMapsAddressvalidationV1ValidateAddressResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &GoogleMapsAddressvalidationV1ValidateAddressResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "addressvalidation.validateAddress", "response", internallog.HTTPResponse(res, b))
return ret, nil
}