// Copyright YEAR 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 additionalpropsobjs provides access to the Example API. // // # 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/additionalpropsobjs/v1" // ... // ctx := context.Background() // additionalpropsobjsService, err := additionalpropsobjs.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 // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // additionalpropsobjsService, err := additionalpropsobjs.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, ...) // additionalpropsobjsService, err := additionalpropsobjs.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package additionalpropsobjs // import "google.golang.org/api/additionalpropsobjs/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" 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 const apiId = "additionalpropsobjs:v1" const apiName = "additionalpropsobjs" const apiVersion = "v1" const basePath = "https://www.googleapis.com/discovery/v1/apis" const basePathTemplate = "https://www.UNIVERSE_DOMAIN/discovery/v1/apis" // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } 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") } s := &Service{client: client, BasePath: basePath} return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } type GeoJsonGeometry map[string]interface{} func (t GeoJsonGeometry) Type() string { return googleapi.VariantType(t) } func (t GeoJsonGeometry) GeometryCollection() (r GeoJsonGeometryCollection, ok bool) { if t.Type() != "GeometryCollection" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) LineString() (r GeoJsonLineString, ok bool) { if t.Type() != "LineString" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) MultiLineString() (r GeoJsonMultiLineString, ok bool) { if t.Type() != "MultiLineString" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) MultiPoint() (r GeoJsonMultiPoint, ok bool) { if t.Type() != "MultiPoint" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) MultiPolygon() (r GeoJsonMultiPolygon, ok bool) { if t.Type() != "MultiPolygon" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) Point() (r GeoJsonPoint, ok bool) { if t.Type() != "Point" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t GeoJsonGeometry) Polygon() (r GeoJsonPolygon, ok bool) { if t.Type() != "Polygon" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } // GeoJsonGeometryCollection: A heterogenous collection of GeoJsonGeometry // objects. type GeoJsonGeometryCollection struct { // Geometries: An array of geometry objects. There must be at least 2 different // types of geometries in the array. Geometries []GeoJsonGeometry `json:"geometries,omitempty"` // Type: Identifies this object as a GeoJsonGeometryCollection. // // Possible values: // "GeometryCollection" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Geometries") 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. "Geometries") 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 *GeoJsonGeometryCollection) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonGeometryCollection return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GeoJsonLineString struct { // Coordinates: An array of two or more positions, representing a line. Coordinates [][]float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonLineString. // // Possible values: // "LineString" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonLineString) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonLineString return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GeoJsonMultiLineString: Multi Line String type GeoJsonMultiLineString struct { // Coordinates: An array of at least two GeoJsonLineString coordinate arrays. Coordinates [][][]float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonMultiLineString. // // Possible values: // "MultiLineString" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonMultiLineString) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonMultiLineString return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GeoJsonMultiPoint struct { // Coordinates: An array of at least two GeoJsonPoint coordinate arrays. Coordinates [][]float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonMultiPoint. // // Possible values: // "MultiPoint" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonMultiPoint) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonMultiPoint return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GeoJsonMultiPolygon struct { // Coordinates: An array of at least two GeoJsonPolygon coordinate arrays. Coordinates [][][][]float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonMultiPolygon. // // Possible values: // "MultiPolygon" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonMultiPolygon) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonMultiPolygon return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GeoJsonPoint struct { // Coordinates: A single GeoJsonPosition, specifying the location of the point. Coordinates []float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonPoint. // // Possible values: // "Point" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonPoint) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonPoint return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type GeoJsonPolygon struct { // Coordinates: An array of LinearRings, each of which is an array of four or // more GeoJsonPositions. The first and last coordinates in each LinearRing // must be the same. For polygons with multiple rings, the first LinearRing is // the external ring, with subsequent rings being interior rings (i.e. hole). // All LinearRings must contain GeoJsonPositions in counter-clockwise order. Coordinates [][][]float64 `json:"coordinates,omitempty"` // Type: Identifies this object as a GeoJsonPolygon. // // Possible values: // "Polygon" Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Coordinates") 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. "Coordinates") 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 *GeoJsonPolygon) MarshalJSON() ([]byte, error) { type NoMethod GeoJsonPolygon return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type MapFolder struct { Contents []MapItem `json:"contents,omitempty"` // DefaultViewport: An array of four numbers (west, south, east, north) which // defines the rectangular bounding box of the default viewport. The numbers // represent latitude and longitude in decimal degrees. DefaultViewport []float64 `json:"defaultViewport,omitempty"` // Expandable: The expandability setting of this MapFolder. If true, the folder // can be expanded. Expandable bool `json:"expandable,omitempty"` // Key: A user defined alias for this MapFolder, specific to this Map. Key string `json:"key,omitempty"` // Name: The name of this MapFolder. Name string `json:"name,omitempty"` // Type: Identifies this object as a MapFolder. // // Possible values: // "folder" Type string `json:"type,omitempty"` // Visibility: The visibility setting of this MapFolder. One of "defaultOn" or // "defaultOff". Visibility string `json:"visibility,omitempty"` // ForceSendFields is a list of field names (e.g. "Contents") 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. "Contents") 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 *MapFolder) MarshalJSON() ([]byte, error) { type NoMethod MapFolder return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *MapFolder) UnmarshalJSON(data []byte) error { type NoMethod MapFolder var s1 struct { DefaultViewport []gensupport.JSONFloat64 `json:"defaultViewport"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.DefaultViewport = make([]float64, len(s1.DefaultViewport)) for i := range s1.DefaultViewport { s.DefaultViewport[i] = float64(s1.DefaultViewport[i]) } return nil } type MapItem map[string]interface{} func (t MapItem) Type() string { return googleapi.VariantType(t) } func (t MapItem) Folder() (r MapFolder, ok bool) { if t.Type() != "Folder" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t MapItem) KmlLink() (r MapKmlLink, ok bool) { if t.Type() != "KmlLink" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } func (t MapItem) Layer() (r MapLayer, ok bool) { if t.Type() != "Layer" { return r, false } ok = googleapi.ConvertVariant(map[string]interface{}(t), &r) return r, ok } type MapKmlLink struct { // DefaultViewport: An array of four numbers (west, south, east, north) which // defines the rectangular bounding box of the default viewport. The numbers // represent latitude and longitude in decimal degrees. DefaultViewport []float64 `json:"defaultViewport,omitempty"` // KmlUrl: The URL to the KML file represented by this MapKmlLink. KmlUrl string `json:"kmlUrl,omitempty"` // Name: The name of this MapKmlLink. Name string `json:"name,omitempty"` // Type: Identifies this object as a MapKmlLink. // // Possible values: // "kmlLink" Type string `json:"type,omitempty"` // Visibility: The visibility setting of this MapKmlLink. One of "defaultOn" or // "defaultOff". Visibility string `json:"visibility,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultViewport") 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. "DefaultViewport") 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 *MapKmlLink) MarshalJSON() ([]byte, error) { type NoMethod MapKmlLink return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *MapKmlLink) UnmarshalJSON(data []byte) error { type NoMethod MapKmlLink var s1 struct { DefaultViewport []gensupport.JSONFloat64 `json:"defaultViewport"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.DefaultViewport = make([]float64, len(s1.DefaultViewport)) for i := range s1.DefaultViewport { s.DefaultViewport[i] = float64(s1.DefaultViewport[i]) } return nil } type MapLayer struct { // DefaultViewport: An array of four numbers (west, south, east, north) which // defines the rectangular bounding box of the default viewport. The numbers // represent latitude and longitude in decimal degrees. DefaultViewport []float64 `json:"defaultViewport,omitempty"` // Id: The ID of this MapLayer. This ID can be used to request more details // about the layer. Id string `json:"id,omitempty"` // Key: A user defined alias for this MapLayer, specific to this Map. Key string `json:"key,omitempty"` // Name: The name of this MapLayer. Name string `json:"name,omitempty"` // Type: Identifies this object as a MapLayer. // // Possible values: // "layer" Type string `json:"type,omitempty"` // Visibility: The visibility setting of this MapLayer. One of "defaultOn" or // "defaultOff". Visibility string `json:"visibility,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultViewport") 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. "DefaultViewport") 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 *MapLayer) MarshalJSON() ([]byte, error) { type NoMethod MapLayer return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *MapLayer) UnmarshalJSON(data []byte) error { type NoMethod MapLayer var s1 struct { DefaultViewport []gensupport.JSONFloat64 `json:"defaultViewport"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.DefaultViewport = make([]float64, len(s1.DefaultViewport)) for i := range s1.DefaultViewport { s.DefaultViewport[i] = float64(s1.DefaultViewport[i]) } return nil }